Uncaught ReferenceError: for onclick

Uncaught ReferenceError: for onclick

我收到未捕获的引用错误:onclick 事件处理程序

  <ng-conatiner *ngIf="x else y" >
     <div onclick="x()"> {{x.getText()}} </div> 
  </ng-conatiner>

   <ng-template #y>
    <div>{{y.getText()}}</div>
   </ng-template>

  export class A implements OnInit {
    ngOnInit() {
        console.log("in ngOnInit");    
    } 
    x(){
        console.log("clicked");
     }

  }

预期的结果会在控制台中被点击,但我收到未捕获的引用错误。

有人可以帮助我吗?

您应该使用 (click)="x()" 而不是 onclick

<ng-conatiner *ngIf="x else y" >
     <div (click)="x()"> {{x.getText()}} </div> 
 </ng-conatiner>

这里是 Angular 的文档页面,供进一步阅读: https://angular.io/guide/user-input

更新

这里有一个关于事件绑定的教程:

https://angular-2-training-book.rangle.io/handout/components/app_structure/responding_to_component_events.html

你应该使用 (click)=x()clickonClick 是同一个事件。内联分配处理程序时应使用 onclick,使用事件侦听器分配时应使用 click

The on-event handlers are a group of properties offered by DOM elements to help manage how that element reacts to events

在 angular 中我们使用事件侦听器,因此使用 click。:

 <ng-conatiner *ngIf="x else y" >
     <div (click)="x()"> {{x.getText()}} </div> 
 </ng-conatiner>