尝试按角度过滤数组时遇到问题。我正在使用打字稿。

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

在父页面上,我要过滤传递给指令的列表。这是我的做法。

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

09-13 00:48