0

次のジレンマがあります。

次のようなネストされたコントローラーが 2 つある場合:

Controller1
   Controller2

Controller1 にはフィールドがあります

someDataService.getMyUser().then(function(user){      
   $scope.user = user;
}

これは promise (外部サーバーへの非同期呼び出し) の結果です。ここまでは順調ですね。しかし、次の状況をどのように管理できますか。

Controller2で使用する必要があります

var userName = $scope.$parent.user.userName 

コントローラーが発射されたとき。最初のコントローラーの約束が解決されるのを待ってから、その var userName 割り当てを評価するように、2 番目のコントローラーを設定するにはどうすればよいですか? (そうしないと、 $scope.$parent が未定義であることがわかります)

4

2 に答える 2

0

このような依存関係はあまり良くありませんが、Controller2 で初期化コードを呼び出す必要がある場合は、$broadcast を使用して、オブジェクトが読み込まれるときに Controller1 から Controller2 の初期化コードを直接実行できます。

于 2015-04-29T00:22:10.917 に答える