无法阅读属性&to toLowerCase'未定义的角度5

时间:2018-02-27 18:17:37

标签: javascript angular

我正在尝试过滤ngx-table的一列我遵循该示例,但它一直给出错误"无法读取属性' toLowerCase'未定义"

这里是模板部分

<ngx-datatable-column name="Nom" class="name">
  <ng-template ngx-datatable-cell-template let-value="value">
    {{value}}
  </ng-template>
</ngx-datatable-column>

和附加的功能

updateFilter(event) {
const val = event.target.value.toLowerCase();

// filter the data
const temp = this.temp.filter(function(d) {
  return d.name.toLowerCase().indexOf(val) !== -1 || !val;
});

// update the rows
this.rows = temp;
// Whenever the filter changes, always go back to the first page
this.table.offset = 0;}

如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

通过过滤的项目似乎并非都包含值&#39; name&#39;在他们里面。在您返回该功能之前尝试console.log(d)以验证您是否正在接收您期望的数据。

答案 1 :(得分:1)

在某些情况下,您的name属性似乎必须未定义。这可能是它不是正确的属性名称(是lastName而不是name?)或者temp数组中某些对象未定义的值。在任何一种情况下,您都可以在返回值之前先检查null。

if (d.name) {
  return d.name.toLowerCase().indexOf(val) !== -1 || !val;
} else {
  return null;
}