2017-04-03 6 views
0

これはパス/にアクセスする際に務めます私のHTML(あるとします。これは、I現れるHTMLページです

<form ng-submit="ctrl.loginUser()" name="myLoginForm"> 
    <div class="form-group"> 
     <label>Username</label> 
     <input type="text" name="uname" class="form-control" ng-model="ctrl.loginuser.username" required> 
    </div> 

    <div class="form-group"> 
     <label>Password</label> 
     <input type="password" name="pwd" class="form-control" ng-model="ctrl.loginuser.password" required> 
    </div> 

    <input type="submit" value="Login"> 
</form> 

アクセス/homemainPage.html):

<h5>TESTTT</h5> 

そして、これはフォームが送信されたときに呼び出されるものです:

angular.module("BaseApp", []) 
    .config(['$httpProvider', function($httpProvider) { 
     $httpProvider.defaults.xsrfCookieName = 'csrftoken'; 
     $httpProvider.defaults.xsrfHeaderName = 'X-CSRFToken'; 
    }]) 

    .config(['$locationProvider', function($locationProvider){ 
     $locationProvider.html5Mode(true); 
    }]) 

self.loginUser = function(loginuser) { 
    return $http.post("/custom-api-auth/login", loginuser) 
    .then(function(response) { 
     $location.url("/home"); 
    }); 
}; 

これをテストしてフォームを送信しようとしました。 URLは/homeに変更されますが、URL www.url.com/homeに行くと配信されるページは表示されません。ページは更新されません。

前述のように、私はwww.url.com/homeに行きます。mainPage.htmlが実際に表示されます。

URLが/homeにリダイレクトされるようにするために必要な手順はありますか?

+1

ルーティングが設定されていますか? – Phil

+1

@ user2719875:ルーティング設定も追加してください –

+0

@Phil私は私の投稿を編集して詳細を追加しました。タイトルで述べたように、私はページを更新してまったく新しいテンプレートをロードしたいので、AngularJSでルーティングを設定していません。私のバックエンドはPython/Djangoで、 '/ home'というURLにアクセスするときにテンプレートを提供します。 '/ home' URLにアクセスするときのバックエンドのテンプレートは' $ location.url( "/ home") 'が実行されたときに表示したいものです。 – user2719875

答えて

0

私がui-routerを使用する方法は、ここで詳しく読むことができます。

https://github.com/angular-ui/ui-router/wiki

あなたは状態にカスタムされたコンテンツやデータを使用して、コントローラを提供するために、決意を使用することができます。この場合、テストに出たいと思っていますが、以前は約束をフルフィルにする必要がありますが、これが一例になります。

$stateProvider.state('test', { 
    resolve:{ 

    // Example using function with simple return value. 
    // Since it's not a promise, it resolves immediately. 
    simpleObj: function(){ 
     return {value: 'simple!'}; 
    }, 

    // Example using function with returned promise. 
    // This is the typical use case of resolve. 
    // You need to inject any services that you are 
    // using, e.g. $http in this example 
    promiseObj: function($http){ 
     // $http returns a promise for the url data 
     return $http({method: 'GET', url: '/someUrl'}); 
    }, 



    }, 
関連する問題