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