0
angular.module('NGTest', [
])
.controller('ItemList', ['$scope', function($scope) {
\t console.log("ItemList controller init");
\t var self = this;
self.count = 4;
self.getItems = function() {
\t console.log("ItemList.getItems() called");
\t return [];
}
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="NGTest">
<div ng-controller="ItemList as lst">
<select ng-options="value for value in [1,2,3,4,5]" ng-model="lst.count"></select>
<div ng-repeat="item in lst.getItems()">foo </div>
</div>
</div>
呼ばNGリピートのためのリストソースは、あなたが起動時に、lst.getItems()関数が2回呼び出されていることがわかります。なぜ2回ですか?
lst.countの値を変更したときにも呼び出されますが、これはまったく使用されません。 私はAngularJSが賢明ではなく、lst.getItems()のコードはlst.countに依存しないことを理解していますが、デフォルトではそれがないと仮定しています。関数のパラメータで。
私に私の実際のアプリケーションを初期化するとき、この関数がng-repeatソースにある理由は、このリストが同じコントローラのフォームコントロールの値に依存することです。 – Passiday
ng-repeatで 'filter'を使用し、必要に応じてカスタムフィルタを作成します – charlietfl
これはあまり簡単ではありません。リストはデータベースからhttpで取得します。クライアント側の完全なリストを保持することは選択肢ではありません。 – Passiday