未捕获的ReferenceError:用于onclick

时间:2018-12-26 18:18:42

标签: angular angular2-template angular7

我收到了onclick事件处理程序的Uncaught ReferenceError:

  <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");
     }

  }

可以在控制台中单击预期的结果,但是我遇到了未捕获的参考错误。

有人可以帮我吗?

2 个答案:

答案 0 :(得分:0)

您应该使用(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

答案 1 :(得分:0)

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

  

on-event 处理程序是DOM元素提供的一组属性,可帮助管理该元素对事件的反应

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

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