Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 使用“角度材质”中的复选框过滤数据库中的数据。错误nameValue.toLowerCase不是函数_Angular_Angular Material - Fatal编程技术网

Angular 使用“角度材质”中的复选框过滤数据库中的数据。错误nameValue.toLowerCase不是函数

Angular 使用“角度材质”中的复选框过滤数据库中的数据。错误nameValue.toLowerCase不是函数,angular,angular-material,Angular,Angular Material,我尝试使用复选框过滤器来过滤材质中表格上的数据。我在终端和控制台上都做得很好,没有任何错误。但当我在浏览器上勾选一个复选框时,控制台上就会出现这个错误“nameValue.toLowerCase不是函数” 下面的代码行标识ts文件中错误所在的部分 filterOptions(positionValue:string[],nameValue:string):ITransactionDetail[]{if(!positionValue | | | positionValue.length==0)和&

我尝试使用复选框过滤器来过滤材质中表格上的数据。我在终端和控制台上都做得很好,没有任何错误。但当我在浏览器上勾选一个复选框时,控制台上就会出现这个错误“nameValue.toLowerCase不是函数”

下面的代码行标识ts文件中错误所在的部分


filterOptions(positionValue:string[],nameValue:string):ITransactionDetail[]{if(!positionValue | | | positionValue.length==0)和&!nameValue){return this.data;}const filtered=this.data.filter(PeriodiceElement=>{return((nameValue?PeriodiceElement.transactionType.toLowerCase()):false)|(positionValue?positionValue.includes(PeriodiceElement.id+“”):false));});返回筛选;}

我认为发生此错误的原因是传递给函数的nameValue不是字符串,尽管它的参数写为字符串

filterOptions(positionValue: string[], nameValue: string)
我假设您在html文件中调用此函数,并且通过此函数传递的值不是字符串

要解决此错误,请确保传递的值是字符串,或将函数更改为:

nameValue.toString().toLowerCase()
希望这样行。

这个怎么样

nameValue.toString().toLowerCase();

谢谢,我应用了你的逻辑,当我勾选框时,控制台上没有错误,但它仍然不能过滤表。如果可能的话,你可以在stackblitz上复制你的代码,这样就更容易检查发生了什么。我希望这是可能的,这是一个jhipster库和一个公司的项目。我会放更多的代码,这样你就可以我有更广泛的想法。我已经尝试过了,但它仍然不能过滤表格