在我的控制器後,我可以打電話:AngularJs首先在濾鏡陣列
$scope.list[0];
要訪問我的數組中的第一項。有沒有辦法做到這一點,記住濾波器。
比如我有:
filter:search
在我復讀,我怎麼能叫$ scope.list [0];等於第一個搜索結果?
在我的控制器後,我可以打電話:AngularJs首先在濾鏡陣列
$scope.list[0];
要訪問我的數組中的第一項。有沒有辦法做到這一點,記住濾波器。
比如我有:
filter:search
在我復讀,我怎麼能叫$ scope.list [0];等於第一個搜索結果?
這可以通過注入濾波器的依賴到控制器,把它在代碼等
var filteredArray = filterDependency(arrayToFilter,args);
它返回一個新的,過濾陣列來完成。由於您使用的是「過濾器」過濾器(它是名稱爲過濾器的過濾器),因此依賴項注入應爲filterFilter
。你的控制器應是這個樣子:
var app = angular.module('myapp',[]);
app.controller('ctrlParent',function($scope,filterFilter){
var filteredArray = [];
$scope.list = ["abc","def","ghi","abcdefghi"];
$scope.$watch('search',function(newValue){
filteredArray = filterFilter($scope.list, newValue);
// do something with the first result
console.log(filteredArray[0]); // first result
});
});
我們正在做的是設置輸入模式(search
)的手錶,所以我們可以得到新的價值,並重新過濾器陣列的任何時候改變輸入時。
也:
如果你需要從視圖中訪問ng-repeat
指數,你可以使用特殊屬性$index
的ng-repeat
喜歡裏面:
<div ng-repeat="item in list | filter:search">
{{$index}}
</div>
你可以還使用$first
,$middle
和$last
as shown in this Angular doc。
是否使用 「NG重複」?如果是這樣,請查看屬性$ first,$ index,$ middle和$ last。這將允許您從重複中獲取特定項目的信息。
欲瞭解更多信息點擊這裏:http://docs.angularjs.org/api/ng.directive:ngRepeat
不帶支架的訪問。如果你有一個ng-repeat
帶有過濾器:
ng-repeat="thing in things | filter:search"
這裏的過濾列表是一種匿名的 - 它沒有可以訪問的名稱。
也就是說,如果你在docs for ngRepeat看一看,你會發現每個轉發器的範圍內,你必須$index
,$first
,$middle
和$last
訪問。
因此,像
<body ng-app="App" ng-controller="Main">
<pre ng-repeat="n in nums | filter:isOdd">
n={{n}}:index={{$index}}:first={{$first}}:middle{{$middle}}:last={{$last}}
</pre>
</body>
會產生:
n=1:index=0:first=true:middlefalse:last=false
n=3:index=1:first=false:middletrue:last=false
n=5:index=2:first=false:middlefalse:last=true
我不是100%肯定你是問什麼......你想知道如何辨別你在過濾函數中的第一個元素? – Polaris878