angularjs filter notarray不是数组

时间:2015-12-10 08:15:59

标签: javascript html angularjs

您好我知道有一些帖子有类似的标题,但我找不到符合我需要的帖子。

我正在尝试过滤角度上的对象数组,它给我的错误过滤器notarray不是数组

你能帮我解决这个问题吗?

{name:"some Name",lastName:"some lastname", address:"some address"}

我的目标是按任何字段过滤。

我的HTML输入框搜索

 <div class="input-field col s6">
  <input value="Busqueda" id="busqueda" type="text" class="validate">
  <label class="active" for="busqueda" ng-model="workerFilter.$">Busqueda</label>
</div>

我的HTML内容应该被过滤

<tr ng-repeat="data in trabajadores.worker track by $index | filter:workerFilter:strict">
        <td ng-repeat="value in trabajadores.values">
            <div class="container" ng-show="!data.editingWorker">
                {{data[value]}}
            </div>
            <div class="input-field col s4" ng-show="data.editingWorker">
                <input value="{{data[value]}}" id="{{data[value]}}_id" type="text" class="validate" ng-model="data[value]">
                <label class="active" for="{{data[value]}}_id">{{value}}</label>
            </div>
        </td>
        <td>
            <p>
                <input type="checkbox" id="{{data}}_id" ng-click="trabajadores.toggleEditing(data)" />
                <label for="{{data}}_id">Editar</label>
            </p>
        </td>
        <td>
            <i class="material-icons center black-text" ng-click="settings.deleteName(name)">delete</i>
        </td>
    </tr>

worker指定为空数组,然后在页面加载时使用http.post调用api。

控制器:

this.worker = [];
this.getWorkers = function(){
        $http({
            method:'GET',
            url:'http://x.x.x.x:8080/api/workers/get'
        }).success(function(data){
            self.worker = [];
            data.forEach(function(element){
                var object = JSON.parse(element);
               self.worker.push(object);
            });
            console.log(self.worker); ///results pasted below
        }).error(function (err) {
            console.log(err);
        });
    };

这是一个console.log和一个工作者示例

[Object, Object, Object, Object, Object]

数组元素:

0: Object lastName: "test"name: "testName"

对象类型:

Objectlength: 5__proto__: Array[0]

1 个答案:

答案 0 :(得分:1)

应用所有过滤器后添加track by $index

ng-repeat="data in trabajadores.worker | filter:workerFilter:strict track by $index