簡體   English   中英

依賴注入到onEnter回調中以使用ui-router進行狀態更改

[英]Dependency injection into onEnter callbacks for state changes with ui-router

在Angular JS中使用ui-router時,可以將哪些依賴項注入到onEnter回調中? 具體來說,我想使用$ http服務和在父模塊中定義的常量。 我正在使用的代碼在模塊config中定義了ui-router狀態; 我知道我無法在配置代碼中使用服務,但是可以在配置代碼定義的回調中使用它們嗎? 無論如何,以下代碼似乎有效; 我只是擔心它可能不可靠。 我想真正的問題是,何時注入依賴項? 這是在定義函數時還是在調用函數時發生?

angular.module('sim', ['ui-router']).
    constant('ENV', {
        BASE_URL: '/simulation/secure'
    }).
    config(config);

function config($stateProvider) {
    $stateProvider
        .state('root.training', {
            url: '/training', 
            controller: 'trainingCtrl', 
            onEnter: function($http,ENV)
            {
                $http.get(ENV.BASE_URL + '/setIsRunning');
            }
        });
};

調用函數時將注入依賴項。 查看ui-router源代碼 ,當狀態轉換考慮entering時,將在狀態轉換期間調用onEnter - onEnter 使用Angulars $injector.invoke()函數可以完成對onEnter的調用,該函數可以根據angular文檔解析$injector中的所有依賴項並調用該方法。 因此,幾乎所有依賴項都可以在onEnter使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM