繁体   English   中英

AngularJS-子指令与父指令使用相同的数据。 如何分享?

[英]AngularJS - Child directive uses same data as parent. How to share?

我有一个子指令,该指令需要与使用它的某些父页面相同的数据。

共享数据的最佳方法是什么?

子指令是否应该与父指令进行相同的API调用?

还是父级应该通过属性将数据发送到指令?

我认为这取决于。

如果parent和child伪指令将要分别重复使用(意味着您可以不使用另一个伪指令),那么您肯定要使用属性API来将数据传递给child伪指令。

如果它们总是要一起使用,则可以执行以下操作之一:

  • 使用属性传递值
  • 从子级删除隔离范围,仅让子级继承父级范围的值。 当人们这样做时,我讨厌它,但是每个人都讨厌。
  • 有一个缓存值的服务,它们都调用该服务并返回相同的值。
  • 您可以使用范围事件系统将父范围的数据广播到其子级。

所有这些都会起作用。 您需要与您的团队讨论他们最喜欢什么,以及大家认为应该采用什么作为常规模式。 之后,您只需实施即可。

祝好运!

我想您描述了正确的解决方案。 最好将数据传递给指令槽属性,并使指令仅显示该属性。 但是,如果您仍然想在指令中对api进行调用,那么我建议您提取对服务的api调用,并在服务内部缓存promise。 这个插件可能很有用。

暂无
暂无

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

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