dab*_*dab 16 javascript angularjs
在我的控制器中我可以打电话:
$scope.list[0];
Run Code Online (Sandbox Code Playgroud)
访问我的数组中的第一项.有没有办法做到这一点,记住过滤器.
例如,我有:
filter:search
Run Code Online (Sandbox Code Playgroud)
在我的重复,我怎么能调用$ scope.list [0]; 等于第一个搜索结果?
Dan*_*Dan 10
这可以通过将过滤器的依赖项注入控制器并在代码中调用它来完成
var filteredArray = filterDependency(arrayToFilter,args);
Run Code Online (Sandbox Code Playgroud)
它返回一个新的过滤数组.由于您使用的是"过滤器"过滤器(它是名为filter的过滤器),因此依赖注入应该是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
});
});
Run Code Online (Sandbox Code Playgroud)
我们正在做的是在输入模型(search)上设置一个监视器,这样我们就可以获得新值并在输入改变时重新过滤数组.
另外:
如果您需要访问ng-repeat从视图中的索引,您可以使用特殊属性$index的内部ng-repeat,如:
<div ng-repeat="item in list | filter:search">
{{$index}}
</div>
Run Code Online (Sandbox Code Playgroud)
您还可以使用$first,, $middle和$last 此Angular文档中所示.
演示:这是一个小提琴
| 归档时间: |
|
| 查看次数: |
33467 次 |
| 最近记录: |