我的组件ProcessStep
有自己的ts
和html
文件。:
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
用于许多具有不同step
值的网页。当我从其他页面拨打populateStep()
时:
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
}
我收到了一个错误:
EXCEPTION:./Login类中的错误Login_Host - 内联模板:0:0 引起:没有ProcessStep的提供者!
如何为ProcessStep
准备提供商?
答案 0 :(得分:2)
如果ProcessStep
是其他组件使用的组件,则应使用@ViewChild
import { ViewChild, AfterViewInit } from '@angular/core';
class Login implements AfterViewInit {
@ViewChild(ProcessStep) step: ProcessStep;
ngAfterViewInit() {
step.populateStep(5);
}
}