Ionic framework 有没有办法在Ionic 4中全局设置组件的一种模式?

Ionic framework 有没有办法在Ionic 4中全局设置组件的一种模式?,ionic-framework,ionic4,Ionic Framework,Ionic4,我只想看一次我的离子按钮组件,无论平台是什么。我知道我可以使用模式属性: 我的按钮 但是有没有一种方法可以全局设置离子按钮,这样我就不必每次都这样做了?我认为没有现成的解决方案可以覆盖每个离子按钮的模式。但是,有一个全局配置选项可以设置整个应用程序的模式: 一个解决方案是创建包含单个离子按钮元素的自定义角度组件。您需要根据自己的需要和离子按钮组件的输入设置输入和输出,但您可以明确地设置模式,而不是只在应用程序中的任何地方使用 如果您唯一需要的是设置平台模式,那么这可能是过分的,但是如果您希望在

我只想看一次我的
离子按钮
组件,无论平台是什么。我知道我可以使用
模式
属性:

我的按钮

但是有没有一种方法可以全局设置离子按钮,这样我就不必每次都这样做了?

我认为没有现成的解决方案可以覆盖每个离子按钮的模式。但是,有一个全局配置选项可以设置整个应用程序的模式:

一个解决方案是创建包含单个离子按钮元素的自定义角度组件。您需要根据自己的需要和离子按钮组件的输入设置输入和输出,但您可以明确地设置模式,而不是只在应用程序中的任何地方使用

如果您唯一需要的是设置平台模式,那么这可能是过分的,但是如果您希望在整个应用程序中重复使用更多自定义项,那么您的ts文件中可能会有类似的内容:

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

@Component({
 selector: 'my-button',
 templateUrl: './my-button.component.html',
 styleUrls: ['./my-button.component.scss'],
})
export class YourButtonComponent implements OnInit {

 @Input() public label: string;
 /* you can also define defaults values here */
 @Input() public isDisabled: boolean = false;
 @Input() public icon: string;
 /* define more inputs if necessary: fill, expand, color.... */

 @Output() public buttonClicked = new EventEmitter();

 constructor() { }

 ngOnInit() {}

 buttonClick() {
    this.buttonClicked .emit(true);
 }

}
在html中,您将有:

<ion-button [disabled]="isDisabled" (click)="buttonClick()" mode="ios">
    <ion-icon slot="start" [name]="icon"></ion-icon>
    <ion-label>{{label}}</ion-label>
  </ion-button>

{{label}}
在页面模块中导入自定义组件后,可以使用它:

<my-button [label]="'Add something'" [icon]="'add'" (buttonClicked)="doSomethingWhenClicked()"></my-button>


模式在组件本身上,您可以在应用程序中添加更多可重用的自定义项。

您能举个例子吗?我不使用angular,我不太清楚根据我的需要设置输入和输出是什么意思。我用一个适用于您的用例的自定义组件示例编辑了我的答案。但是,如果您只想设置按钮的模式,那么将其添加到所有位置可能会更容易。