首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将组件注入到其他组件中会导致单例

将组件注入到其他组件中会导致单例
EN

Stack Overflow用户
提问于 2017-12-18 13:19:22
回答 1查看 61关注 0票数 0

下面是我代码的一部分:

代码语言:javascript
复制
@Component({
    selector: '...',
    templateUrl: " "
})
export class QuoteComponent {
    address: boolean[] = [false, false];

    constructor() { }
     ...
}


import { QuoteComponent } from "...";
@Component({
    selector: '...',
    templateUrl: "...",
})
export class Addresses1Component {
    constructor(private quote: QuoteComponent) { }
}


import { QuoteComponent } from "...";
    @Component({
        selector: '...',
        templateUrl: "...",
    })
    export class Addresses2Component {
        constructor(private quote: QuoteComponent) { }
    }     

使用上面的代码和而不定义提供者 anywhere,QuoteComponent是一个单例,Addresses1Component, Addresses2Component可以访问它。我希望表现得像服务一样,而不是单例,因为我没有在providers数组的某个地方定义它。有什么好的解释吗?

EN

回答 1

Stack Overflow用户

发布于 2017-12-19 10:59:01

预计组件不会被注入。使用反应性表单API创建包含表单模板的共享组件。

如果您的QuoteComponent创建了一个应该在其他组件中可用的表单(使用表单数据),则创建一个具有模拟表单模型属性的类型的变量myFormData的服务。另外,在这个服务中创建setter和getter:set formData()get formData()。应该将此服务注入QuoteComponent、Addresses1Component和Addresses2Component。

创建表单时,调用服务上的setter。在adress组件中,调用getter并使用setValue方法填充来自服务的数据,例如:

代码语言:javascript
复制
this.myFormModel.setValue(myService.formData);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47869399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档