本文介绍了angularjs多重使用loadsequence和auth权限解析的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在这里引用,我遇到同样的问题。
我们如何建立一个多重解决方案,一个使用 currentAuth ,另一个使用载入控制器和脚本的 loadsequence 。 / b>
这是我的状态配置
:
.state('app.example',{
url:/ example,
templateUrl: assets / views / example.html,
resolve:{
loadSequence:loadSequence('jquery-sparkline','exampleCtrl')
},
title:'example',
ncyBreadcrumb:{
label:'example'
}
})
这里是我的 loadsequece
函数:
function loadSequence(){
var _args = arguments;
返回{
deps:['$ ocLazyLoad','$ q',
函数($ ocLL,$ q){
var promise = $ q.when(1) ;
for(var i = 0,len = _args.length; i< len; i ++){
promise = promiseThen(_args [i]);
}
return promise;
$ b $函数promiseThen(_arg){
if(typeof _arg =='function')
return promise.then(_arg);
else
return promise.then(function(){
var nowLoad = requiredData(_arg);
if(!nowLoad)
return $ .error('Route解决:资源名称不正确['+ _arg +']');
返回$ ocLL.load(nowLoad);
});
$($ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $如果(jsRequires。 modules [m] .name&&& jsRequires.modules [m] .name === name)
return jsRequires.modules [m];
返回jsRequires.scripts&& jsRequires.scripts [名称];
}
}]
};
$ / code $ / pre
$ b
这里是我的 currentAuth
factory:
currentAuth:['Auth',function(Auth){
return Auth。$ requireSignIn()
}]
解决方案正如所述:
所以你可以
.state('app.example',{
url: / example,
templateUrl:assets / views / example.html,
resolve:{
scripts:loadSequence('jquery-sparkline','exampleCtrl')。deps,
currentAuth:function(Auth){return Auth。$ requireSignIn();}
},
title:'example',
ncyBreadcrumb:{
label:'example '
}
})
Referring to this question here, I am having the same problem.
How can we set up a multiple resolve, one with currentAuth and another with loadsequence which loads controllers and scripts?
Here is my state config
:
.state('app.example', {
url: "/example",
templateUrl: "assets/views/example.html",
resolve:{
loadSequence: loadSequence('jquery-sparkline', 'exampleCtrl')
},
title: 'example',
ncyBreadcrumb: {
label: 'example'
}
})
and here is my loadsequece
function:
function loadSequence() {
var _args = arguments;
return {
deps: ['$ocLazyLoad', '$q',
function ($ocLL, $q) {
var promise = $q.when(1);
for (var i = 0, len = _args.length; i < len; i++) {
promise = promiseThen(_args[i]);
}
return promise;
function promiseThen(_arg) {
if (typeof _arg == 'function')
return promise.then(_arg);
else
return promise.then(function () {
var nowLoad = requiredData(_arg);
if (!nowLoad)
return $.error('Route resolve: Bad resource name [' + _arg + ']');
return $ocLL.load(nowLoad);
});
}
function requiredData(name) {
if (jsRequires.modules)
for (var m in jsRequires.modules)
if (jsRequires.modules[m].name && jsRequires.modules[m].name === name)
return jsRequires.modules[m];
return jsRequires.scripts && jsRequires.scripts[name];
}
}]
};
}
and here is my currentAuth
factory:
currentAuth: ['Auth', function(Auth) {
return Auth.$requireSignIn()
}]
解决方案 As described in the documentation of ui-router :
so you can configure your state adding functions in your state resolve :
.state('app.example', {
url: "/example",
templateUrl: "assets/views/example.html",
resolve: {
scripts: loadSequence('jquery-sparkline', 'exampleCtrl').deps,
currentAuth: function(Auth){ return Auth.$requireSignIn();}
},
title: 'example',
ncyBreadcrumb: {
label: 'example'
}
})
这篇关于angularjs多重使用loadsequence和auth权限解析的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!