我正在学习使用Angular UI路由器来控制应用程序的不同部分。
看看这个plunkr(http://plnkr.co/edit/KH7lgNOG7iCAEDS2D3C1?p=preview)
事情不起作用:
加载视图时,{{logger}}值未更新,尽管我已在Homecontroller中初始化它。
登录和注销按钮无法按预期工作。
非常感谢。
答案 0 :(得分:0)
原来是一个非常复杂的问题。要将控制器应用于多个视图,您需要使用ng-controller
将控制器直接应用于html(例如ng-controller="HomeController"
。从那里,您可以将各个控制器应用于每个视图。
因此,要解决问题,请将controller: 'LoginController'
添加到views.navbar
对象,然后您将需要以下两个控制器。
.controller('LoginController',
['$scope','userInfo',function($scope,userInfo){
$scope.login = function(){
$scope.model.logger += "Logged in \n";
$scope.model.user = userInfo;
}
$scope.logout = function(){
$scope.logger += "logged out \n";
$scope.user = false ;
}
}])
.controller('HomeController',
['$scope',function($scope){
$scope.model = {
user: null,
logger: 'Nothin to log yet :'
};
}]);
这是updated plnkr现在应该按预期工作。