0

コントローラー A に、コントローラー B で使用されている変数を設定する必要が$rootScopeある Restangular 関数があります。コントローラー B が初期化される前に Restangular 関数が確実に実行されるようにするにはどうすればよいですか、またはこの問題を処理する別の方法はありますか? ありがとう。

4

1 に答える 1

1

$scope.$watch依存関係を処理する通常の方法は、待機中の変数に対して use a を使用し、他のコードをコールバックで応答させることです。

$scope.$watch(function() {
    return $rootScope.resultFromControllerA
}, function(result) {
    if (result) {

        // Configure Controller B
    }
})

編集、それがプロミスであると提案したので追加するだけで、ルートスコープにプロミスを設定し、他のコントローラーをそれにアタッチするだけです:

コントローラーA

$rootScope.controllerASetupPromise = Restangular.get()

コントローラ B

$scope.$watch(function() {
    return $rootScope.controllerASetupPromise
}, function(thePromise) {
    if (thePromise) {

        thePromise.then(function(response) {

            // Configure Controller B
        });
    }
})
于 2013-10-29T04:09:03.773 に答える