Angular 2 组件未显示

Angular 2 Component not showing

我试图在我的 GettingStartedPage 组件中显示一个 OAuthComponentOAuthComponent 未显示在我的浏览器中。没有错误。

OAuthComponent.ts

import {Page, NavController} from 'ionic/ionic';
import {Component} from 'angular2/angular2'

@Component({
    templateUrl: "app/authentication/components/oauth-component.html",
    selector: "oauth-component"
})
export class OAuthComponent {

    private nav: NavController;

    constructor(nav: NavController) {
        this.nav = nav;
    }
}

oauth-component.html

<h1>
    Testing Something
</h1>

GettingStartedPage.ts

import {Page, NavController} from 'ionic/ionic';
import {OAuthComponent} from "../authentication/components/OAuthComponent";
import "./getting-started.scss";

@Page({
    templateUrl: 'app/getting-started/getting-started.html',
    directives: [OAuthComponent]
})
export class GettingStartedPage {

    private nav: NavController;

    constructor(nav: NavController) {
        this.nav = nav;
    }
}

getting-started.html

<ion-navbar *navbar>
    <a menu-toggle>
        <icon menu></icon>
    </a>

    <ion-title>Getting Started</ion-title>
</ion-navbar>

<ion-content>
    <main>
        <oauth-component></oauth-component>
    </main>
</ion-content>

Angular2 中的所有组件都必须引用出现在视图中的其他组件。

Ionic 似乎用他们自己的 @Page 注释来处理这个问题,但它只涵盖了 Ionic 特定的组件。 decorators.ts 解释了这种行为。

您需要编辑代码以将 OAuthComponent 包含在 directives 中:

@Page({
    templateUrl: 'app/getting-started/getting-started.html',
    directives: [OAuthComponent] // Don't forget to import it
})
export class GettingStartedPage {