我显然错过了 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/