[英]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,例如addChildMode
、 defaultValues
等。 (因为我将 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.