2016-10-04 78 views
1

我已将我的离子应用程序从beta 11更新为rc0。所以这意味着我已经从angular2 rc4切换到了angular2 stable。Angular 2:调用子组件

我试图用我是从家庭page.html中

<slider-component [title]="sliderTitle[0]" [songs]="recentlyViewedSongs" [viewId]="RecentViewId" ></slider-component> 

调用滑盖component.ts的自定义组件,我有这仍然总是的console.log未定义

export class SliderComponent { 

    @Input() title: string = ""; 
    @Input() songs: any; 
    @Input() viewId: any = []; //stores id of songs to be shown 

    constructor(
     public nav: NavController, 
    ) { 
     console.log("In the SliderComponent, this.songs", this.songs); //shows an empty array 
    } 

在我app.module.ts,我使用@NgModule这样

@NgModule({ 
    declarations: [ 
    MyApp, 
    HomePage, 
    SliderComponent 
    ], 
    imports: [ 
    IonicModule.forRoot(MyApp) 
    ], 
    bootstrap: [IonicApp], 
    entryComponents: [ 
    MyApp, 
    HomePage, 
    SliderComponent 
    ], 
    providers: [] 
}) 
export class AppModule {} 

关于我在做什么的错误?

回答

2

您应该执行OnInit并在ngOnInit()方法中访问您的数据绑定属性(标题,歌曲等)。按照生命周期,它们在构造函数执行时不会被初始化。

+0

感谢您的答复。我可以用ngOnInit获得变量 – Dee

0

您是否将组件导入home-page.ts?并包含在@Component之下?

通常它像

#home-page.ts 
`import {SliderComponent} from '../../components/slider-component/slider-component';` 

@Component({ 
    templateUrl: 'build/pages/home-page/home-page.html', 
    directives: [SliderComponent], 
}) 
+0

感谢您的回复。现在都在工作。我认为_ @ Component_中不再需要_directives_和_providers_,因为我们有ngModule处理所有事情。 我没有使用_directives_ – Dee