javascript - UI-Router 的解析函数参数是如何解析的?

标签 javascript angularjs angular-ui-router

我显然错过了 UI-Router 和/或 Angular 文档中的一些内容,因此,尽管我听起来很愚蠢,但它是:

http://angular-ui.github.io/ui-router/site/#/api/ui.router.state .$stateProvider 我们有一个示例解析函数:

resolve: {
    myResolve1:
      function($http, $stateParams) {
        return $http.get("/api/foos/"+$stateParams.fooID);
      }
    }

我知道它的返回值将被注入(inject)到名为“myResolve1”的 Controller 中。

我不太清楚函数参数 "$http""$stateParams" 的值来自哪里。那么,调用者在哪里找到赋予该函数的值呢?

最佳答案

这是一个很好的观点,正如此处所讨论的

Angularjs ui-router abstract state with resolve

我们应该使用面向 IoC 的符号

resolve: {
    dataParent: ['$stateParams', 'ProfileService', function ($stateParams, ProfileService) {
        var username = $stateParams.username;
        return ProfileService.getProfile(username);
    }]
}

最大的好处是......即使应用了缩小,它也能工作。但最重要的是,现在已经非常明确地说明了:

there is an array with all required dependency names - and the resolve function as a last argument

关于javascript - UI-Router 的解析函数参数是如何解析的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37594687/

相关文章:

javascript - 无法触发onClick事件

javascript - 文本对齐 :center not working when position:absolute with javascript?

Javascript:如何使用第三方获取浏览器缩放级别

javascript - PHP通过json废墟数组转Jquery

javascript - 如何将当前页面(ng-grid)保存在父状态?

javascript - ng-switch什么时候完成渲染?

javascript - 如何在 angular.js 中使用 token 管理身份验证?

node.js - 从 TeamCity 运行 Karma

javascript - Angular JS 文本区域验证

javascript - 状态更改后 AngularJS UI-Router 滚动到顶部