角度自定义过滤器和indexOf条件

时间:2014-06-27 15:27:08

标签: javascript angularjs filter indexof

我是计算机新手并尝试为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;甚至在工作过滤器中。

谢谢!

1 个答案:

答案 0 :(得分:0)

更改此行:

if (item.age.indexOf(this.mes.age) >= -1) {

为:

if (item.age.indexOf(this.mes.age) !== -1) {

希望这有帮助。