我是angularjs的新手。重新加载AngularJS控制器
我的问题是,我有一个用户控制器来处理登录和注销。我还有另一个控制器为我的网站加载一个标题菜单。
如果用户登录到站点,我的isAuthenticated变量设置为true。如果变量设置为true,则标题应该改变,但是,我认为必须重新加载控制器才能更改标题视图。
这里我HeaderController的代码:
myapp.controller('HeaderController', ['$scope', '$location', '$window', 'AuthenticationService',
function HeaderController($scope, $location, $window, AuthenticationService) {
$scope.isAuthenticated = AuthenticationService.isAuthenticated;
if (AuthenticationService.isAuthenticated) {
$scope.user.vorname = $window.sessionStorage.user.vorname;
}
}
]);
这里是我的HeaderDirective的代码:
myapp.directive('appHeader', function() {
return {
restrict: 'E',
link: function(scope, element, attrs) {
if (attrs.isauthenticated == 'false') {
scope.headerUrl = 'views/header/index.html';
} else {
scope.headerUrl = 'views/header/isAuthenticated.html';
}
},
template: '<div ng-include="headerUrl"></div>'
}
});
我的index.html:
<div ng-controller="HeaderController">
<app-header isauthenticated="{{isAuthenticated}}"></app-header>
</div>
我怎样才能重新加载控制器,如果用户登录到页面?
PS:请原谅我发音不好。
谢谢,这就是我正在寻找的。 – BlackSalt 2014-10-03 08:13:05
不幸的是,这个答案有点失败,每个人都在搜索如何重新加载控制器:(是的,在这种情况下不需要它,但还有其他用例(例如编写基础结构,可以重新初始化ui的位收到一个事件) – 2018-01-25 18:58:32
@GeorgeMauer我不明白为什么在你的用例中需要一个控制器reolad。你能给更多的上下文吗?(也许最好打开一个新的SO问题作为一个无效的方法您的需求) – 2018-01-25 19:07:48