1

いいタイトルが思いつきません、すみません。

次のコードを検討してください -

//controller
function ProductCtrl($scope) {
   getCategories(function (result) {
       $scope.category = result.categories[0].name;
   }); // asynchronouse method; getCategories calls uses XHR and returns the result as callback.
}

//view
{{category}}

ビューがブラウザーに読み込まれると、getCategoriesすぐに呼び出されます。このメソッドを別の場所で再利用できるように、onLoad on div など、オンデマンドでロードするにはどうすればよいですか? $scope.getCategoriesコントローラーの負荷ではなく、必要なデータを返すようなものです。ビューでこのメソッドを使用するにはどうすればよいですか? 例えば<div onload=getCategories()></div>動作しますか?

別の質問ですが、ビューはcategory. $scope.category以外で利用できるようにするにはどうすればよいgetCategoriesですか?

4

1 に答える 1

0

ビューがブラウザーに読み込まれると、getCategories がすぐに呼び出されます。オンデマンドでロードするにはどうすればよいですか?

関数でラップし、必要に応じてその関数を呼び出します。

$scope.getCategories = function() {
   getCategories(function (result) { ... }
}

このメソッドを別の場所で再利用できますか?

複数のビューが getCatetories の結果にアクセスする必要がある場合は、結果を格納するサービスを作成する必要があります。その後、コントローラーはそのサービスを挿入してアクセスできます。

ビューはカテゴリを印刷しません。

AJAX は Angular の「外部」で発生しているため、Angular はコールバックが呼び出され、$scope.category更新されていることを知りません。$scope.$apply()更新後にコールバックを追加するだけ$scope.categoryで、Angular はダイジェスト サイクルを実行してビューを更新します。

于 2013-05-09T21:23:56.573 に答える