2016-11-03 8 views
1

私は、独自のtshtmlファイル:ionic2 - 他のページへのコンポーネント

import { Component } from '@angular/core'; 
import { NavController } from 'ionic-angular'; 

@Component({ 
    selector: 'page-process-step', 
    templateUrl: 'process-step.html' 
}) 
export class ProcessStep { 
totalsteps:number; 
steparray:Array<boolean>; 
currentstep = 1; 

    constructor(public navCtrl: NavController) {} 

    ionViewDidLoad() { 
    console.log('Hello ProcessStep Page'); 
    } 
    populateStep(n:number){ 
    for(var i =1; i<=n ; i++){ 
     this.steparray.push(false); 
    } 
    } 

} 

ProcessStepとコンポーネントProcessStepを持っているが、異なるstep値を持つ多くのページで使用されています。私は他のページからpopulateStep()を呼び出すとき:

私は ProcessStepのためのプロバイダを準備することができますどのように

EXCEPTION: Error in ./Login class Login_Host - inline template:0:0 caused by: No provider for ProcessStep!

import { Component } from '@angular/core'; 
import { NavController } from 'ionic-angular'; 
import { ProcessStep } from '../process-step/process-step'; 

@Component({ 
    selector: 'page-login', 
    templateUrl: 'login.html' 
}) 
export class Login { 
    constructor(public navCtrl: NavController, 
       public modalCtrl:ModalController, 
       public loadingCtrl:LoadingController, 
       private processstep:ProcessStep 
      ) { 
       processstep.populateStep(5);///<-- give error 
       } 

私はエラーを得ましたか? NavController用>ノープロバイダ:ProcessStepは、他のコンポーネントによって使用されるコンポーネントである場合

+0

とそれへの参照を取得する必要があります! – sooon

+0

共有サービスの使い方は?プロバイダと同じですか? 'ProcessStep'はマイナーなカスタマイズのビューコンポーネントです。私は@huitingの答えに従って動作します。しかし、何らかの理由で 'ngFor'が動作していません。 – sooon

答えて

2

は、私は@ NgModule.providers` `に追加した後、新たなエラーが発生します@ViewChild

import { ViewChild, AfterViewInit } from '@angular/core'; 

class Login implements AfterViewInit { 
    @ViewChild(ProcessStep) step: ProcessStep; 

    ngAfterViewInit() { 
    step.populateStep(5); 
    } 
} 
関連する問題