【发布时间】:2015-05-11 17:18:42
【问题描述】:
我的 AngularJS 应用程序中有几个页面(使用 $routeProvider)。我创建了一个指令(包含一些允许在它们和输入上设置回调的按钮),它应该可以在这些页面之间重用,但是当从一个页面跳转到另一个页面时,该指令使用服务来保持其状态。
现在的问题是,如果您在第一页更改指令的状态,其他页面的状态将相同,因为它们都使用相同的服务。如何解耦?
我唯一想到的是这些指令应该有自己的 id,像这样:
<my-directive id="dirOnPageX"></my-directive>
所以我可以根据 id 将状态存储在服务中,但这需要我将 id 属性添加到我放入 HTML 的每个指令中。有没有更好的解决方案?
也许来自给定指令的一些独特的东西转换为一些哈希,然后它会被用作 id?但是,在指令中,什么可能是独特的和确定的?
【问题讨论】:
-
为什么不将指令的状态存储在指令本身而不是服务中?
标签: angularjs