在forEach angularjs中更新数组



我有一个问题,当试图过滤数组在角。我用的是打字。

我有一个包含指令的父页面。该指令有一个数组属性,它显示在一个数据表中。

在父页面上,我想过滤传递给指令的列表。下面是我是怎么做的....

<table items="vm.items"></table>

在我的父控制器,我有一个按钮,当你按下它执行以下功能:

applyFilters() {
   var filteredItems=[];
   this.items.forEach((value, key) => {
      if (value.item!== 'test') {
         this.filteredItems.push(value);
      }
   });
   console.log(this.filteredItems);
   this.items = this.filteredItems;
}

但是当我更新过滤器时,指令中的值不更新吗?

我在这里做错了什么?

此处:

 if (value.item!== 'test') {
     this.filteredItems.push(value);
 }

变量filteredItems通过var filteredItems = [];定义,而您通过this.filteredItems赋值。只使用:

filteredItems.push(value);
...
this.items = filteredItems;

最新更新