我是计算机新手并尝试为AngularJS App构建自定义过滤器。
我必须搜索一串整数(cultivos.age)并返回该项,如果该字符串包含mes.age条件。我设法创建一个返回==值的workingFilter。但是,我无法设法写一个' indexOf'条件,以便如果mes.age包含在cultivos.age数组中,它返回项目
工作过滤器:
angular.module('calendarioFilters',[]).filter('filtroMes', function(){ return function(cultivos, name){ var arrayToReturn = []; for (var i=0; i<cultivos.length; i++){ if (cultivos[i].age == this.mes.age) { arrayToReturn.push(cultivos[i]); } } return arrayToReturn; };
});
和不工作的过滤器:
angular.module('calendarioFilters',[]).filter('filtroMes', function(){ return function(cultivos, name){ var arrayToReturn = []; for (var i=0; i<cultivos.length; i++){ if (cultivos[i].age.indexOf(this.mes.age) !== -1) { arrayToReturn.push(cultivos[i]); } } return arrayToReturn; };
});
我在HTML中调用过滤器
<li ng-repeat="cultivo in cultivos | filtroMes:''">
控制台日志&#34; TypeError:无法读取属性&#39;长度&#39;未定义&#34;甚至在工作过滤器中。
谢谢!
答案 0 :(得分:0)
更改此行:
if (item.age.indexOf(this.mes.age) >= -1) {
为:
if (item.age.indexOf(this.mes.age) !== -1) {
希望这有帮助。