2017-07-18 94 views
0

想象一下,我们有一个3步骤的向导。角度:从向导的不同步骤获取数据

我想知道是否有任何解决方案来从步骤1和步骤2中填充数据以将其显示为步骤3。

每一步是一个不同的组件。我知道Step3必须得到两个输入。我的问题是,如何将数据发送到Step1和Step2上的Step3组件?

任何建议,将不胜感激!

谢谢!

+1

你可以从不同的组件使用共享服务。 – Ploppy

+0

是的,像这样的东西就是我在想什么,但是如果存在的话,希望看到其他解决方案!谢谢 – XGuy

+0

我不认为有一个更简单的方法来做到这一点。组件交互可以总结为共享服务,输入绑定(在你的情况下,我认为你不能实现这一点)和ViewChild绑定,这将比简单的服务更难实现。 – Ploppy

回答

0

使用共享服务,您可以轻松实现此目的。

不要忘记正确设置所述服务的提供者。

wizard.service.ts

import { Injectable } from '@angular/core'; 

@Injectable() 
export class WizardService{ 

    constructor() { } 

    public void setStep1(){ /*do something*/ } 
    public void setStep2(){ /*do something*/ } 
    public void setStep3(){ /*do something*/ } 

} 

step1.component.ts

import { Component } from '@angular/core'; 
import { WizardService} from './wizard.service.ts'; 

@Component({ 
    ... 
}) 

export class Step1Component 

    constructor(private wizardService: WizarService) { } 

    onClick(){ 
    this.wizarService.setStep1(); 
    } 
}