3 回答

TA貢獻(xiàn)1798條經(jīng)驗 獲得超7個贊
這是一個比以前更簡單的方法。
<input ng-model="query">
<div ng-repeat="item in (filteredItems = (items | orderBy:'order_prop' | filter:query | limitTo:4))">
{{item}}
</div>
然后$scope.filteredItems是可訪問的。

TA貢獻(xiàn)1827條經(jīng)驗 獲得超4個贊
這是Andy Joslin解決方案的過濾器版本。
更新: BREAKING CHANGE。從1.3.0-beta.19版本開始(此commit),過濾器沒有上下文,并且this將綁定到全局范圍。您可以將上下文作為參數(shù)傳遞,也可以在ngRepeat 1.3.0-beta.17 +中使用新的別名語法。
// pre 1.3.0-beta.19
yourModule.filter("as", function($parse) {
return function(value, path) {
return $parse(path).assign(this, value);
};
});
// 1.3.0-beta.19+
yourModule.filter("as", function($parse) {
return function(value, context, path) {
return $parse(path).assign(context, value);
};
});
然后在您看來
<!-- pre 1.3.0-beta.19 -->
<input ng-model="query">
<div ng-repeat="item in items | orderBy:'order_prop' | filter:query | limitTo:4 | as:'filteredItems'">
{{item}}
</div>
<!-- 1.3.0-beta.19+ -->
<input ng-model="query">
<div ng-repeat="item in items | orderBy:'order_prop' | filter:query | limitTo:4 | as:this:'filteredItems'">
{{item}}
</div>
<!-- 1.3.0-beta.17+ ngRepeat aliasing -->
<input ng-model="query">
<div ng-repeat="item in items | orderBy:'order_prop' | filter:query | limitTo:4 as filteredItems">
{{item}}
</div>
這使您可以訪問$scope.filteredItems。
添加回答
舉報