AngularJS使用loadsequence和auth权限进行多重解析

2023-12-28

参考这个问题在这里 https://stackoverflow.com/questions/33431797/angularjs-multiple-resolve, 我有同样的问题。
我们如何设置多重解析,其中一个当前验证另一个与加载顺序哪个加载控制器和脚本?


这是我的state config :

.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;
    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];
            }
        }]
    };
}


这是我的currentAuth工厂:

currentAuth: ['Auth', function(Auth) {
                return Auth.$requireSignIn()
            }]

如中所述ui-router 的文档 https://github.com/angular-ui/ui-router/wiki :

解析属性是一个地图对象。地图对象包含以下键/值对:

key – {string}:要注入控制器的依赖项的名称。

工厂 - {字符串|函数}: 如果是字符串,则它是服务的别名。 否则,如果是函数,则将其注入,并将返回值视为依赖项。如果结果是一个承诺,则在实例化控制器并将其值注入控制器之前解决它。

这样您就可以在状态解析中配置状态添加功能:

.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'
    }
})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AngularJS使用loadsequence和auth权限进行多重解析 的相关文章

随机推荐

  • 为 git 输入提交消息后该怎么办?

    我输入后git commit a弹出一个文本编辑器 我输入我的评论 输入评论后 我必须按哪些按钮才能使其进入实际提交的下一阶段 我在 Windows 上使用默认设置的 mysysGit 尝试这个 git add file name git
  • 在 iOS 模拟器中截图

    我想在模拟器中运行时截取我的 iOS 应用程序的屏幕截图 并将屏幕截图保存在我的 Mac 上 我怎样才能做到这一点 It s just as simple as command s or File gt Save Screen Shot i
  • 使用 JQuery 的 IE 中的堆栈溢出(第 12/1076 行)

    我正在使用来自 Google CDN 的 JQuery 并且在第 12 行 对于 min 文件 和第 1076 行 对于未压缩的文件 出现堆栈溢出错误 使用 IE8 堆栈溢出错误将我带到的行的 JQuery 代码是 jQuery js ma
  • 如何使用 python 将 firestore 查询响应转换为 json

    我写了下面的代码 places ref db client collection u places doc places ref where u city name u paris get print doc 控制台输出为
  • Google Sheets 最大单元格限制和缓解措施

    我在网上读到 Google 表格的最大单元格限制为 500 万个单元格 我目前正在处理的一张工作表已经远远超出了该限制 包括空白单元格 新的限制是多少 我还手动检查了我使用了多少个单元格 有没有 我可以用来进行检查的函数或脚本 我正在处理的
  • 何时在java中使用linkedhashmap而不是hashmap?

    linkedhashmap和hashmap之间的选择有哪些实际场景 我已经完成了每个工作 得出的结论是 linkedhashmap 维护插入顺序 即元素将以与插入顺序相同的顺序检索 而 hashmap 不会维护顺序 那么有人可以告诉我们在什
  • Android Studio:导入图片时无法进行重构

    今天早上我突然无法将 png 文件拖到 Android Studio 中的可绘制文件夹中 我收到消息 无法执行重构 文件是只读的 我已确认这些文件不是只读的 并且已对 Mac 上不同位置的大量图像文件进行了尝试 关于如何解决这个问题有什么想
  • Android 4.3:BLE:startLeScan() 的过滤行为

    我正在开发一个蓝牙传感器设备 我需要为此形成一对多的数据广播 根据规范 外设可能只有一个主设备 并且由于我正在设计的芯片和堆栈的限制 一个主设备只能有三个从设备 据我了解 Android 无论如何都无法成为 BLE 从设备 因此将我的设备作
  • 无法在 Samsung Galaxy S2 的 VideoView 中播放 RTSP 视频

    我正在尝试播放实时 RTSP 视频 来自rtsp media2 tripsmarter com LiveTV BTV using VideoView 这是我的代码 public class ViewTheVideo extends Acti
  • Heroku Redis 上的 SSL 认证验证失败

    我正在使用 Redis 高级计划在 Heroku 上部署 Flask 应用程序 我收到以下错误 SSL 认证验证失败 尝试修复 降级到 Redis 5 Passing ssl cert reqs None to the Redis构造函数在
  • 如何在 Drupal 8 中创建查询

    我习惯在 drupal 7 中使用 db select 但现在它在 drupal 8 中已弃用 因此 如果我需要创建一个查询来列出来自的所有用户users field data表 我该怎么办 我还用吗db select or db quer
  • 首次创建 viewpager 时显示特定页面

    我有一个片段 其中包含ViewPager This ViewPager由一个支持PagerAdapter使用一个Cursor 光标由LoaderCallbacks 我在这里使用 v4 支持库 我想要的是创建片段并让视图分页器显示指定的页面
  • 在代码中设置WPF图像源

    我正在尝试在代码中设置 WPF 图像的源 图像作为资源嵌入到项目中 通过查看示例 我想出了下面的代码 由于某种原因它不起作用 图像没有显示 通过调试我可以看到该流包含图像数据 那么出了什么问题呢 Assembly asm Assembly
  • 在 C 中以编程方式获取网络链接类型和速度

    我想知道是否有一种更紧凑的方法来查找 Linux 中网络接口的链接速度和类型 无线 以太网 而不是仅仅打开并读取 sys class net eth0 type and sys class net eth0 speed例如文件 如果没有的话
  • 为什么从 Visual Studio 运行 .sh 脚本会打开该文件而不是运行它?

    我正在尝试从 Windows 10 中运行的 Visual Studio Code 中运行 sh 脚本 该脚本本身应该在 Flask 中启动一系列单元测试 并且出于某种原因 无论我尝试什么 它都只会打开文件进行编辑而不是实际运行该文件 这是
  • 如何使只读数据网格中的一列可编辑?

    如何使只读数据网格中的一列可编辑
  • 如何配置 NHibernate 以使用 配置部分中的连接字符串

    有谁知道如何配置 NHibernate 属性文件以使用配置元素中已指定的连接字符串 我在 google com 上找到了它
  • 跳转到可滚动 div 内的内容

    我得到以下 HTML div style height 200px table table div 通过这个设置 我有点模仿扩展
  • 删除以特定字母/字符 php 开头的单词

    这是一个简单的例子 correction game text Hello this is an example of a word that starts with a dollar sign text str replace word c
  • AngularJS使用loadsequence和auth权限进行多重解析

    参考这个问题在这里 https stackoverflow com questions 33431797 angularjs multiple resolve 我有同样的问题 我们如何设置多重解析 其中一个当前验证另一个与加载顺序哪个加载控