Typescript 无法读取属性';目标';ionic3中未定义的

Typescript 无法读取属性';目标';ionic3中未定义的,typescript,ionic3,Typescript,Ionic3,我试图根据用户传递的字符串搜索产品 getItems(): void { let search = event.target.value; if (search && search.trim() != '') { this.productService.getProducts(search).subscribe((products) => { console.dir(products); }, (err) => { c

我试图根据用户传递的字符串搜索产品

getItems(): void {
  let search = event.target.value;
  if (search && search.trim() != '') {
    this.productService.getProducts(search).subscribe((products) => {
      console.dir(products);
    }, (err) => {
       console.log(err);
    });
  } 
当我试图通过传递查询进行搜索时,它显示以下错误

错误类型错误:无法读取未定义的属性“target”


我不知道我哪里做错了。有人能帮我一下吗?

假设有个活动。。。应将其传递到函数中

getItems(event)
而且。在使用前检查物品是一个很好的做法。我是指事件对象的目标属性

事件绑定的分配可能不同。但在您的情况下-可能是输入字段的键控或单击按钮上的事件(但随后您需要引用该字段)


在第二个示例中,您不需要$event,因为它不会引用该值。然而,您需要使用ViewChild decorator函数从输入中获取值,假设有一个事件。。。应将其传递到函数中

getItems(event)
而且。在使用前检查物品是一个很好的做法。我是指事件对象的目标属性

事件绑定的分配可能不同。但在您的情况下-可能是输入字段的键控或单击按钮上的事件(但随后您需要引用该字段)


在第二个示例中,您不需要$event,因为它不会引用该值。然而,您需要使用ViewChild decorator函数从输入中获取值。这里是一种可能的方法,大多数人仅使用双向数据绑定。它用于获取数据和绑定数据

第一种方式:-

Html文件

<input [(ngModel)]="searchTxt" name="searchTxt" (keyup)="getItems()" />
<input (keyup)="getItems($event)" />
第二种方式:- 从您的代码中,您遗漏了一些小部分,在这里您将看到

Html文件

<input [(ngModel)]="searchTxt" name="searchTxt" (keyup)="getItems()" />
<input (keyup)="getItems($event)" />
所以像这样改变吧

getItems(event): void { //here iam recieving argument used some variable name
  let search = event.target.value;
  if (search && search.trim() != '') {
    this.productService.getProducts(search).subscribe((products) => {
      console.dir(products);
    }, (err) => {
       console.log(err);
    });
  } 
我希望您理解代码中遗漏了什么,以及如何使用双向数据绑定


使用双向绑定时,您必须在
app.module.ts
文件中包含
FormsModule

以下是一种可能的方法,大多数人仅使用双向数据绑定。它用于获取数据和绑定数据

第一种方式:-

Html文件

<input [(ngModel)]="searchTxt" name="searchTxt" (keyup)="getItems()" />
<input (keyup)="getItems($event)" />
第二种方式:- 从您的代码中,您遗漏了一些小部分,在这里您将看到

Html文件

<input [(ngModel)]="searchTxt" name="searchTxt" (keyup)="getItems()" />
<input (keyup)="getItems($event)" />
所以像这样改变吧

getItems(event): void { //here iam recieving argument used some variable name
  let search = event.target.value;
  if (search && search.trim() != '') {
    this.productService.getProducts(search).subscribe((products) => {
      console.dir(products);
    }, (err) => {
       console.log(err);
    });
  } 
我希望您理解代码中遗漏了什么,以及如何使用双向数据绑定


使用双向绑定时,您必须在
app.module.ts
文件中包含
FormsModule

您尝试过我的答案了吗。您的代码错误您可以更改这一行getItems(event){}您是否尝试过我的答案。您的代码错误您可以只更改此行getItems(event){}