を使用して、すべての繰り返しで関数を呼び出す:(1-Nのカーディナリティを持つ)カテゴリー< --->製品私は次のような関係を持ってNGリピート
これは中NGリピートディレクティブです毎回リピートリストカテゴリは、このカテゴリはgetAllProductsByCategory()機能にすぐに送信され、その後、$ HTTPサービスは、すべての製品を取得する際、HTMLテーブル
<tr ng-repeat="category in categories">
<td>{{category.name}}</td>
<td>{{products[category.id]}}</td>
</tr>
だから、私は何をする必要があるかでありますこの特定のカテゴリに属する。
機能を実行するためにng-initディレクティブを使用しようとしましたが、それを使用する正しい方法ではないと思います。それを行うより良い方法はありますか?
<tr ng-repeat="category in categories" ng-init="getAllProductsByCategory(category)">
<td>{{category.name}}</td>
<td>{{products[category.id]}}</td>
</tr>
そして、これがNG-initが最初ではないカテゴリ毎に一度だけ実行されますカテゴリ
$scope.getAllProductsByCategory = function(category){
$http("getAlProductsByCategory"+category.id){
.success(function (data, status, headers, config) {
$scope.products[category.id] = data;
})
.error(function (data, status, header, config){
$log.error("Error");
});
}
ありがとうございます。しかし、すべてのオブジェクトをgetAllProductsByCategory(カテゴリ)に渡すために、コントローラで配列を分割する方法がわかりません。関連する例を私に教えてください。 – wilson
カテゴリは既に配列ではありませんか?または、少なくともlodash https://lodash.com/のようなもので、各要素のために何かを呼び出すことができる列挙型ですが、私の指摘は、関数を呼び出すと、すべての製品を一度に返す関数を呼び出す必要がありました。各カテゴリごとに投稿し、そこからオーバーヘッドを取得します。 2000カテゴリがあるとします。あなたは本当にサーバーへの2000回の呼び出しを行いますか? – TigOldBitties
このコードをご覧くださいhttp://plnkr.co/edit/KMz09pJORmtflcl948kU?p=preview – wilson