我正在尝试过滤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;}
如何解决这个问题?
答案 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;
}