Jen*_*ens 7 angularjs angular-ui-router
我需要从服务或指令访问已解析的数据,以在整个应用程序中执行一些常规操作.
我似乎能够访问已解析数据的唯一方法是将其注入控制器.
这是我设置的测试数据:
resolve: {
test: function() {
console.log("resolving");
return 5+2;
}
}
Run Code Online (Sandbox Code Playgroud)
我在我的控制器中尝试过这只是为了看看会发生什么,但它不起作用:
$injector.invoke(function(test) {
console.log("injected", test);
$scope.test = test;
});
Run Code Online (Sandbox Code Playgroud)
我明白了:
"Error: [$injector:unpr] Unknown provider: testProvider <- test
Run Code Online (Sandbox Code Playgroud)
因此,似乎已解析的数据作为本地传递给状态控制器上的调用函数.
我还发现我可以从状态访问resolve对象:
$state.current.resolve
Run Code Online (Sandbox Code Playgroud)
但这是没有已解析数据的原始解析对象.我可以调用这些函数来解析数据,但我会重新解决依赖关系.如果对解析对象有任何请求,则会被调用两次.
我只需要像访问数据属性或$ state.params一样访问已解析的值.
Jen*_*ens 12
我终于弄明白了.
可以通过$ state.$ current对象访问所有已解析的数据:
$state.$current.locals.globals
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1473 次 |
| 最近记录: |