在Angular 2中调用点击事件的函数

新手上路,请多包涵

如何在组件(打字稿)中声明一个函数并在 Angular 2 中的单击事件上调用它?以下是 Angular 1 中相同功能的代码,我需要 Angular 2 代码:

 <button ng-click="myFunc()"></button>

//控制器

app.controller('myCtrl', ['$scope', function($cope) {
    $scope.myFunc= {
        console.log("function called");
    };
}]);

原文由 Azhar Khan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 839
2 个回答

组件代码:

 import { Component } from "@angular/core";

@Component({
  templateUrl:"home.html"
})
export class HomePage {

  public items: Array<string>;

  constructor() {
    this.items = ["item1", "item2", "item3"]
  }

  public open(event, item) {
    alert('Open ' + item);
  }

}

看法:

 <ion-header>
  <ion-navbar primary>
    <ion-title>
      <span>My App</span>
    </ion-title>
  </ion-navbar>
</ion-header>

<ion-content>
  <ion-list>
    <ion-item *ngFor="let item of items" (click)="open($event, item)">
      {{ item }}
    </ion-item>
  </ion-list>
</ion-content>

正如您在代码中看到的那样,我正在声明这样的点击处理程序 (click)="open($event, item)" 并将事件和项目(在 *ngFor 中声明)发送到 open() 方法(在组件代码中声明)。

如果您只是想显示该项目并且不需要从事件中获取信息,则可以执行 (click)="open(item)" 并修改 open 方法如下 public open(item) { ... }

原文由 sebaferreras 发布,翻译遵循 CC BY-SA 4.0 许可协议

准确转移到 Angular2+ 如下:

 <button (click)="myFunc()"></button>

也在你的组件文件中:

 import { Component, OnInit } from "@angular/core";

@Component({
  templateUrl:"button.html" //this is the component which has the above button html
})

export class App implements OnInit{
  constructor(){}

  ngOnInit(){

  }

  myFunc(){
    console.log("function called");
  }
}

原文由 Alireza 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题