Javascript 无法读取属性';toLowerCase';未定义的角5

Javascript 无法读取属性';toLowerCase';未定义的角5,javascript,angular,Javascript,Angular,我试图过滤ngx表中的一列,但它一直给出错误“无法读取未定义的属性'toLowerCase'” 这是模板部分 <ngx-datatable-column name="Nom" class="name"> <ng-template ngx-datatable-cell-template let-value="value"> {{value}} </ng-template> </ngx-datatable-column> 你知道如何解

我试图过滤ngx表中的一列,但它一直给出错误“无法读取未定义的属性'toLowerCase'”

这是模板部分

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

你知道如何解决这个问题吗?

似乎正在筛选的项目中并不都包含“name”值。在返回该函数之前,请尝试
console.log(d)
,以验证您是否收到了预期的数据。

要筛选的项目似乎并不都包含值“name”。在返回该函数之前,请尝试
console.log(d)
,以验证您是否收到了预期的数据。

在某些情况下,您的
名称
属性必须是未定义的。这可能是因为属性名称不正确(是否为
lastName
而不是
name
?),或者对于
temp
数组中的某些对象,该值未定义。无论哪种情况,都可以在返回值之前先检查null

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

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

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

可能是@DeborahK的复制品,你是对的。我误解了安全导航操作员的解释。这里是一个,正如这里所解释的,仍然有一个。感谢您的澄清@DeborahK的可能副本,您是对的。我误解了安全导航操作员的解释。这里是一个,正如这里所解释的,仍然有一个。谢谢你的澄清