简体   繁体   English

angularjs过滤器notarray不是数组

[英]angularjs filter notarray Not an array

Hello I know that there are some post with similar title but I cannot find one that fits what I need. 您好,我知道有些帖子标题相似,但找不到适合我的帖子。

I am trying to filter an array of objects on angular and its giving me the error filter notarray Not an array 我正在尝试过滤angular上的对象数组,并且给我错误过滤器notarray不是数组

Can you please help me with this The object is like 你能帮我吗这个对象就像

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

My goal is to filter by any field. 我的目标是按任何字段进行过滤。

MY HTML INPUT BOX TO SEARCH 我的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>

MY HTML CONTENT THAT SHOULD BE FILTERED 我的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 is assigned trought as an empty array and then with http.post call to an api on page load. worker被分配为空数组,然后在页面加载时通过http.post调用api。

Controller: 控制器:

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);
        });
    };

This is a console.log and a worker example 这是一个console.log和一个工作示例

[Object, Object, Object, Object, Object]

Array element: 数组元素:

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

Object Type: 对象类型:

Objectlength: 5__proto__: Array[0]

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM