如何将控制器中的数据放入导航栏?

时间:2017-09-12 21:59:24

标签: angularjs angular-ui-router

我有一个带有导航栏的主控制器(具有ui-view)。此外,我有一个处理登录的控制器。登录后,它会尝试获取用户的信息并将其放入$ scope / $ rootScope。

这些变量都没有留在导航栏中让我输入类似“#34;欢迎,[昵称]!"。

1 个答案:

答案 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;
    });
});
相关问题