基于角色 angular 的不同模板 url
different template url on basis of role angular
我的路由配置如下:
.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。那么有什么可能的方法呢?
基本上问题是您无法将 service/factory
注入到 angular 配置阶段。您需要创建一个提供者而不是 service/factory。因为提供商在 Angular.
的配置阶段具有访问权限
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";
}
}
};
});
我的路由配置如下:
.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。那么有什么可能的方法呢?
基本上问题是您无法将 service/factory
注入到 angular 配置阶段。您需要创建一个提供者而不是 service/factory。因为提供商在 Angular.
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";
}
}
};
});