AngularJS:在ng-view之外刷新angular作用域
AngularJS: Refresh angular scope outside of ng-view
好的,所以我有一个基本的登录页面,当用户登录时,我想在屏幕顶部的导航栏上显示更多的详细信息。当他们点击登出,这就消失了。这是工作(在某种程度上),但是要让导航栏改变我需要刷新页面,这显然不会发生当我只是使用路由来改变什么是在我的n -view。
当用户点击' login '时,他们的用户名存储在一个服务中,该服务使用ng-view中的login控制器调用。
authService.SetUsername(user.Username);
然而,我希望它在导航栏控制器中有一个效果,它在ng-view之外。
你可以在我的导航栏控制器中看到它是如何被使用的。
app.controller('navbarController', function ($scope, authService, $cookies, $location) {
$scope.displayUsername = authService.GetUsername();
});
但是displayusername
只有在刷新页面和"重新加载"控制器时才会改变。当存储用户名的服务更新时,我如何使其立即更改?
你可以广播一个登录事件:
.factory("authService", [
"$rootScope",
function ($rootScope) {
return {
login: function () {
// do the login
$rootScope.$broadcast("login-done");
}
}
}
]);
和你的控制器:
app.controller('navbarController', function ($scope, $rootScope, authService, $cookies, $location) {
$scope.displayUsername = authService.GetUsername();
$rootScope.$on("login-done", function() {
$scope.displayUsername = authService.GetUsername();
});
});
- 创建$rootScope.displayName.
- 在导航栏中使用{{displayName}}标记。
- 登录成功后,更新$rootScope.displayName.
- 赞美AngularJS。
通常,我建议使用对象$rootScope。
相关文章:
- OnsenUI、Angular和在警报对话框后刷新UI组件
- Angular JS和Node路由/布线-仅在页面刷新后显示数据
- Angular中的UI网格刷新
- 如何使 Angular 服务中的数据通过页面刷新持久化
- Angular SPA中不需要的页面刷新
- Angular/UI路由器-如何在不刷新所有内容的情况下更新URL
- 是否有任何事件“;在$scope摘要完成时”;或“;在视图刷新时”;在Angular.js中
- Angular,ui路由器;绑定”;到url,也不刷新
- 保存当前选择的<李>在页面刷新后的Angular中
- 刷新Angular RouteProvider路由会导致Python出现404错误
- Angular js在浏览器页面刷新后未路由到默认页面
- 刷新 Angular 中的指令
- 刷新 Angular 中自定义属性指令的元素
- 再次刷新Angular JS应用程序
- 刷新angular.js中作用域的数组项
- 刷新Angular UI网格后,所选项目不会重置
- AngularJS:在ng-view之外刷新angular作用域
- 使DOM元素可见并刷新:Angular JS
- 在浏览器中更改URL参数会刷新Angular页面
- 需要在按钮点击时刷新angular应用