本文介绍了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权限解析的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-14 03:08