在Angular 2中调用click事件上的函数

时间:2016-10-24 06:12:33

标签: javascript angular typescript

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

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

//控制器

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

5 个答案:

答案 0 :(得分:82)

组件代码:

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中声明)发送到{{1方法(在组件代码中声明)。

如果您只想展示该项目,而不需要从该活动中获取信息,则可以open()执行此(click)="open(item)"方法并修改open方法public open(item) { ... } }

答案 1 :(得分:42)

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

答案 2 :(得分:9)

https://angular.io/guide/user-input - 这是一个简单的例子。

答案 3 :(得分:3)

控制器代码中的行$scope.myFunc={应该是$scope.myFunc = function() {function()部分对于指示来说很重要,这是一个函数!

更新的控制器代码将是

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

答案 4 :(得分:1)

这对我有用::)

<button (click)="updatePendingApprovals(''+pendingApproval.personId, ''+pendingApproval.personId)">Approve</button>
updatePendingApprovals(planId: string, participantId: string) : void {
  alert('PlanId:' + planId + '    ParticipantId:' + participantId);
}