错误类型错误:无法读取未定义 core.js:5967 的属性“toLocaleLowerCase”

时间:2020-12-29 08:40:59

标签: angular typescript django-rest-framework

Component.ts

branches: any = [];
branchName: string; // any
ngOnInit(): void {
    // this.refreshBranchList();
    this.service.getBranchList().subscribe((response: any) => {
      this.branches = response;
});
}
Search() {
if (this.branchName !== "") {
  this.branches = this.branches.filter((res: { branchName: string; }) => {
    return res.branchName.toLocaleLowerCase().match(this.branchName.toLocaleLowerCase());
  })
} else if (this.branchName == "") {
  this.ngOnInit();
}

}

Component.html

<div class="d-flex float-right">
  <input type="text" class="form-control" placeholder="Search here" [(ngModel)]="branchName" (ngModelChange)="Search()">
</div>

它正在按预期搜索值。但是控制台中有一个我不熟悉的错误。有什么遗漏的请告诉我。

error detail

3 个答案:

答案 0 :(得分:2)

尝试改变这一点

new_list

到这里

return res.branchName.toLocaleLowerCase().match(this.branchName.toLocaleLowerCase());

答案 1 :(得分:1)

就像 Nik 在他的评论中所说的,res.branchName 或 this.branchName 都是未定义的。

因此,如果您的对象未定义,请定义您的对象,或者使用 ?-operator for res?.branchName?.toLocaleLowerCase() 和 this.branchName?.toLocaleLowerCase(),如果视图在您的属性分配之前呈现价值。

答案 2 :(得分:1)

您必须验证 <html> <script src="jquery.min.js"></script> <script> var validatstatus; function validcheck(currntcheck) { validatstatus = true; $(currntcheck).closest('div').find('input,div[contenteditable="true"]').each(function () { if ($(this).val().trim() == '' && $(this).is("input") && $(this).attr('required')) { alert($(this).attr('data-required')); $(this).focus(); validatstatus = false; return false; } else if ($(this).text().trim() == '' && $(this).is('div') && $(this).attr('required')) { alert($(this).attr('data-required')); $(this).focus(); validatstatus = false; return false; } }) } $(document).ready(function () { $('#btnis').click(function () { validcheck(this); if (validatstatus == true) { alert('success'); } }) }) </script> <body> <div> <input type="text" required="true" data-required="please fill Name" /> <input type="text" /> <input type="text" required="true" data-required="please fill address" /> <div contenteditable="true" style="border:1px solid gray; width:150px;" required="true" data-required="please fill message"></div> <input type="button" value="check validation" id="btnis" /> </div> </body> </html> 的值

试试这个方法:

this.branchName