2016-03-29 12 views
4

私は角度の新しいもので、ng-viewngRouteの指示文で作業しようとしています。角度jsでコントローラからビューを変更するにはどうすればいいですか?

私は私が次のようにログインボタンのコードが

<button class="button button-block" ng-click="login()">Log In</button> 

を次のように書かれており、loginControllerでのログイン機能が実行されます]ボタンをクリックする上で、私のコントローラが書き込まれていたにloginPage.htmlあります

var App = angular.module('App', ['ngRoute']); 

App.config(['$routeProvider', 
    function($routeProvider) { 
    $routeProvider. 
     when('/', { 
     templateUrl: 'loginPage.html', 
     controller: 'loginController' 
     }). 
     when('/home', { 
     templateUrl: 'homePage.html', 
     controller: 'homeController' 
     }); 
    }]); 

App.controller('loginController', ['$scope', '$http', '$location', function($scope, $http) { 
    console.log("Hello from login controller"); 


    $scope.login = function() { 
     //console.log($scope.user); 
     $http.post('/login', $scope.user).success(function(response) { 
      if(response.status == "true") 
       //if the response is true i want to go to homepage.html. 

      else 
       $scope.error="Invalid login! Please try again"; 
       $scope.user.email=""; 
       $scope.user.password=""; 
     }); 
    }; 

}]); 

response.status==true私は/homeに私のビューを変更したいと思います。誰かが私にそのことを教えてもらえますか?

ありがとうございます。

答えて

1
if(response.status == "true") 
    $location.path("/home"); 

は、このようなあなたのコントローラパラメータに$locationを追加することを忘れないでください。 :

['$scope', '$http', '$location', function($scope, $http, $location)... 

また、最初の行だけが文の中で、他の括弧であなたのelse文を包む、または:

else { 
    $scope.error="Invalid login! Please try again"; 
    $scope.user.email=""; 
    $scope.user.password=""; 
} 
+1

おかげで、それが働きました!コントローラパラメータに$場所を追加するのを忘れていました – Minions

1

使用$location.path

if(response.status == "true") { 
    $location.path('/home'); 
} 

はまた、あなたは、コントローラの依存リストに$locationを追加逃した:

function($scope, $http, $location) 
0
if(response.status == "true") 
    $location.path("/home"); 
関連する問題