1

次のように使用するようなディレクティブを作成しました。

<div car-form car="car" on-submit="createCar(car)"></div>

作成した新規ページと編集ページの両方でディレクティブを使用します。彼らは独自のコントローラーを持っています。では、EditCarController作成した RESTful Web サービスから車を取得します。また、車などに基づいていくつかのカテゴリを設定するディレクティブ (ディレクティブの構成オブジェクト内) にコントローラー関数を割り当てました...ただし!

車はページ コントローラーから非同期的にロードされるため、ディレクティブ コントローラー コードの実行開始時に常に (ランダムに) ロードされるとは限りません。どうすれば修正できますか?ディレクティブに渡す車が積載されていることを確認する必要があります。

4

1 に答える 1

1

$watchディレクティブのコントローラーでa を使用して、データがサーバーから戻ってきたことを知ることができます。このようなもの:

$scope.$watch("car", function(newVal) {
    if (angular.isDefined(newVal)
    {
         //get stuff based on car (newVal)
    }
});

は、データがサーバーから返されるまで$watch渡されundefinedます。その時点で、オブジェクトに対して必要なことは何でも実行できます。

于 2013-08-26T18:59:06.477 に答える