javascript - 每个组件传递 action() 时出错

标签 javascript angular ionic-framework

我有以下按钮组件。

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

@Component({
  selector: 'app-button',
  template: ` <ion-button color="{{color}}" (click)="action()">
                {{title}}
              </ion-button>`
})
export class ButtonComponent implements OnInit {

  @Input() public title: string;
  @Input() public color = 'primary';
  @Input() public action = '';

  constructor() { }

  ngOnInit() {
  }

}

但是当我将 action() 传递给它时它不起作用,有谁知道我需要做什么才能将此属性作为组件传递?

最佳答案

(click)="action()" 表示它期待一个名为action的方法,你需要稍微修改一下,

像这样尝试:

Working Demo

家长:

title = 'Btn Title';
action = "save"

<app-button [title]="title" [action]="action"></app-button>

child :

<ion-button color="{{color}}" (click)="this[action]()">
   {{title}}
</ion-button>

或者,

<ion-button color="{{color}}" (click)="onClick()">
            {{title}}
</ion-button>


onClick() {
   this[this.action]()
}

关于javascript - 每个组件传递 action() 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58790070/

相关文章:

android - 如何将我的电容器插件导入 Ionic android 应用程序

mysql - 如何用ionic连接mysql

javascript - 将函数调用捕获为字符串

javascript - 使用 Javascript 解析 XML(在 Google Scripts 中)

angular - 别名已被 "--collection"选项使用,不能被 "--change-detection"选项使用

css - 如何在CSS中实现material design motion

google-maps - Google map API key 过期

javascript - 我可以使用三等号来比较 JavaScript 字符串吗?

javascript - innerHTML = var 写入控制台而不是页面

javascript - Angular 6 - 表单 - 选择选项未正确更新