繁体   English   中英

在不使用选择器的情况下在另一个组件中使用局部组件变量

[英]use a local component variable in another component without using selector

我在 angular 中有一个名为first_component的组件。 我在其 HTML 中使用另一个名为second_component的组件,例如:

<second_component [addChildMode]='addChildMode' [defaultValues]='defaultValues' [chosenRelationIsInitialRelation]='chosenRelationIsInitialRelation'></second_component>

如您所见,我使用@Input()将一些值从 first_component 传递到 second_component,例如addChildModedefaultValues等。 (因为我将 second_component 与选择器一起使用,所以我可以使用@Input() )。 现在我有一个showValue ,它是 second_component 中的一个局部变量,我想知道它的变化,因为我没有通过它的选择器使用 first_component,我怎么能注意到showValue在第二个组件中发生变化? ps first_component 和 second_component 只是兄弟姐妹。 (不是孩子和父母)

由于您需要对跨多个组件的showValue的变化做出反应,因此它不再(不应该)是本地的。 如果使用NgRX或者类似state管理,可以把showValue放在一个store中。 当该变量具有全局意义时,我才推荐这样做。

但由于这听起来更像是一对组件在或多或少的本地环境中紧密合作,我建议使用共享服务,它将showValue的值保存在一个可观察的对象中,这两个组件可以推送/订阅。

我的建议是使用 ChangeDetectionStrategy,如果不是那么必要,或者如果您没有任何其他方式,那也是如此。

使用 state 管理对于大型项目会很好,但如果用于较小的项目会使应用程序变得沉重。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM