我的路线配置如下:
.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。那么可能的方法是什么?
答案 0 :(得分:1)
基本上问题是你不能将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";
}
}
};
});