在 Ionic 2 中,如何创建使用 Ionic 组件的自定义组件?

Posted

技术标签:

【中文标题】在 Ionic 2 中,如何创建使用 Ionic 组件的自定义组件?【英文标题】:In Ionic 2, how do I create a custom component that uses Ionic components? 【发布时间】:2017-05-01 22:06:25 【问题描述】:

创建一个基本指令很简单:

import Component from 'angular2/core';

@Component(
    selector: 'my-component',
    template: '<div>Hello!</div>'
)
export class MyComponent 
    constructor() 

    

这按预期工作。但是,如果我想在我的指令中使用 Ionic 组件,事情就会爆炸。

@Component(
    selector: 'nl-navbar',
    template: `
        <ion-header>
          <ion-navbar color="primary">
            <button ion-button menuToggle>
              <ion-icon name="menu"></ion-icon>
            </button>
            <ion-title >
              <span>Complaints</span>
            </ion-title>
            <ion-buttons *ngIf="!hideCreateButton" end>
              <button ion-button class="navBtnRight" (click)="openPopover($event)">
                <ion-icon name="md-more"></ion-icon>
              </button>
            </ion-buttons>
          </ion-navbar>
        </ion-header>
    `,
    inputs: ['hideCreateButton']
)

export class CustomNavbar 

    public hideCreateButton: string;

    constructor(public popoverCtrl: PopoverController) 
    

    createNew(): void 
        // this.nav.setRoot(CreateNewPage, ,  animate: true, direction: 'forward' );
    

    openPopover(myEvent) 
      let popover = this.popoverCtrl.create(PopoverPage);
      popover.present(
        ev: myEvent
      );
    

像这样使用自定义导航栏:

<nl-navbar [hideCreateButton]="hidebutton()"></nl-navbar>

我的 ts 文件如下所示:

private hideCreateButton: boolean = false;

  public hidebutton(): boolean 
    return this.hideCreateButton;
  

指令已渲染,但 Ionic 组件未转换,因此无法正常查看/工作。有时它仅适用于安卓设备。

我找不到这方面的任何例子。我该怎么做?

【问题讨论】:

改为 【参考方案1】:

确保包含您的自定义组件的模块具有:imports: [IonicModule]

【讨论】:

以上是关于在 Ionic 2 中,如何创建使用 Ionic 组件的自定义组件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在IONIC 3中为intl-tel-input创建IONIC组件

如何创建对象数组或使用模型,就像我们在 JSON 中一样 - Angular/Ionic

ionic:创建 APP

如何在Ionic 2应用程序中提取和重用导航栏模板和逻辑?

使用 ionic 2 和 angular 2 创建菜单

如何在 iOS 上使用 Ionic 创建应用内媒体存储?