【发布时间】:2015-04-22 00:40:38
【问题描述】:
我有一个基于用户类型加载导航的抽象基础模板。这部分适用于初始加载。问题是当用户之后登录或注销时,我无法让父 templateProvider 重新加载。我已尝试解决方案here 重新加载父模板,但导航模板不受影响。有没有办法重新加载 templateProvider,或者更好的方法?理想情况下,我不必将导航提供程序添加到每个子路由。
路线:
$stateProvider
.state('base', {
abstract: true,
views: {
content: {
template: '<ui-view></ui-view>',
},
nav: {
templateProvider: function ($templateFactory, User, $stateParams){
if(User.exists()){
var url = '/static/html/navs/' + User.get.type + '.html';
return $templateFactory.fromUrl(url);
}
else{
return false;
}
}
}
}
})
.state('base.index', {
url: '/',
controller: 'loginController',
templateUrl: 'static/html/landing/login.html'
})
来自github issue 尝试的控制器函数:
scope.login_submit = function(e){
e.preventDefault();
User.login(scope.login, function(res){
$state.transitionTo(
'base.dashboard', null,
{reload: true, inherit: true, notify: true }
);
});
};
【问题讨论】:
标签: angularjs angular-ui-router