angularjs - 除了将它们注入(inject) Controller 之外,还有其他方法可以访问已解决的状态依赖项吗?

标签 angularjs angular-ui-router

我需要从服务或指令访问已解析的数据,以在整个应用程序中执行一些常规操作。

我似乎能够访问已解析数据的唯一方法是将其注入(inject) Controller 。

这是我设置的测试数据:

resolve: {
    test: function() {
         console.log("resolving");
        return 5+2;
    }
}

我已经在我的 Controller 中尝试过这个只是为了看看会发生什么,但它不起作用:
$injector.invoke(function(test) {
    console.log("injected", test);
    $scope.test = test;
});

我得到:
"Error: [$injector:unpr] Unknown provider: testProvider <- test

所以似乎解析的数据作为本地传递给状态 Controller 上的调用函数。

我还发现我可以从状态访问解析对象:
$state.current.resolve

但这是没有解析数据的原始解析对象。我可以调用这些函数来解析数据,但我会重新解析依赖关系。如果对解析对象有任何请求,它们将被调用两次。

我只需要访问解析的值,就像访问数据属性或 $state.params 一样。

最佳答案

我终于弄明白了。

可以通过 $state.$current 对象访问所有已解析的数据:

$state.$current.locals.globals

关于angularjs - 除了将它们注入(inject) Controller 之外,还有其他方法可以访问已解决的状态依赖项吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28026620/

相关文章:

javascript - 如何在 Angular JS 中按父属性过滤子属性?

javascript - 具有不同运行时配置的多个 Restangular 服务

angularjs - 通过 angular1 ui-router 导航后,更改检测在 ng2 组件中无法正常工作

javascript - 在 Angular JS 中嵌入带样式的 HTML

javascript - Angularjs:[$injector:modulerr] 无法实例化模块 ui-router

javascript param 是一个变量,如何放置值

javascript - 如何遍历 Angular json 对象

angular-ui-router - Ui-router 子状态未加载到降级的 Angular 组件内

angularjs - 如何在 AngularJS UI-Router 中定义查询参数的默认值?

javascript - ionic 侧菜单中的异步工厂