Javascript 基于角色的不同模板url
我有如下路由配置:Javascript 基于角色的不同模板url,javascript,angularjs,angularjs-service,angularjs-routing,angularjs-provider,Javascript,Angularjs,Angularjs Service,Angularjs Routing,Angularjs Provider,我有如下路由配置: .config(['$routeProvider', function ($routeProvider) { $routeProvider .when('/home', { templateUrl: 'partials/home.html', controller
.config(['$routeProvider',
function ($routeProvider) {
$routeProvider
.when('/home', {
templateUrl: 'partials/home.html',
controller: 'HomeCtrl'
})
}]);
现在我想根据用户的授权确定不同的登录模板。我已授权在会话中定义服务。我希望能够做到以下几点:
.config(['$routeProvider', 'Session'
function ($routeProvider, Session) {
$routeProvider
.when('/home', {
templateUrl: Session.getState().authorized?'partials/authHome.html':'partials/home.html',
controller: 'HomeCtrl'
})
}]);
但我不能以这种方式使用配置中的会话。那么,有什么可能做到这一点呢?基本上,问题是您不能将
服务/工厂
注入到配置阶段。您需要创建一个提供者,而不是服务/工厂。因为提供程序在配置阶段具有访问权限
Session.js
app.provider('Session', function() {
this.getState = function(){
var object;
//fill up object value.
return object; //object will have your desired format with authorised prop
}
this.$get = function() {
return {
myMethod: function() {
return "Something";
}
}
};
});
getState()
是异步调用吗?getState只是我的应用程序和Session.getState()中Session.js文件中的一个函数。authorized只返回true/false