Как объявить функцию внутри компонента (машинописный текст) и вызвать ее при событии щелчка в Angular 2? Ниже приведен код той же функциональности в Angular 1, для которой мне нужен код Angular 2:
<button ng-click="myFunc()"></button>
// контроллер
app.controller('myCtrl', ['$scope', function($cope) {
$scope.myFunc= {
console.log("function called");
};
}]);
javascript
angular
typescript
неизвестно
источник
источник
angular2
если этоAngular 1
приложение?Ответы:
Код компонента:
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) { ... }
источник
Точный перевод в 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"); } }
источник
https://angular.io/guide/user-input - простой пример.
источник
Строка в коде вашего контроллера, которая читает,
$scope.myFunc={
должна быть$scope.myFunc = function() {
тойfunction()
частью, которую важно указать, это функция!Обновленный код контроллера будет
app.controller('myCtrl',['$scope',function($cope){ $scope.myFunc = function() { console.log("function called"); }; }]);
источник
Это сработало для меня: :)
<button (click)="updatePendingApprovals(''+pendingApproval.personId, ''+pendingApproval.personId)">Approve</button>
updatePendingApprovals(planId: string, participantId: string) : void { alert('PlanId:' + planId + ' ParticipantId:' + participantId); }
источник