我有一个带有导航栏的主控制器(具有ui-view)。此外,我有一个处理登录的控制器。登录后,它会尝试获取用户的信息并将其放入$ scope / $ rootScope。
这些变量都没有留在导航栏中让我输入类似“#34;欢迎,[昵称]!"。
答案 0 :(得分:0)
添加包含导航栏数据的服务。将服务注入两个控制器。在导航栏控制器中,将服务的数据绑定到导航栏视图。登录后,调用服务以添加数据。
您可能希望用户的数据在程序的其他部分,因此将服务命名为“userProfile”可能是有意义的。
angular.module('app').factory('userProfile', function() {
return {};
});
angular.module('app').controller('NavBarCtrl', function(userProfile) {
var ctrl = this;
ctrl.userProfile = userProfile;
});
<!-- NavBar.html -->
<span class="welcome">Welcome, {{$ctrl.userProfile.nickname}}</span>
angular.module('app').controller('LoginCtrl', function(userProfile) {
//Do Login stuff
.then(function(profileData) {
userProfile.nickname = profileData.nickname;
});
});