我的AngularJS应用程序中有几页(使用$ routeProvider)。我创建了一个指令(包含一些允许在它们和输入上设置回调的按钮),这些指针应该可以在这些页面之间重复使用,但是当从一个页面跳到另一个页面时,该指令使用服务来保持其状态。
现在的问题是,如果您在第一页上更改指令的状态,则其他状态将是相同的,因为它们都使用相同的服务。如何解耦这个?
我唯一想到的是这些指令应该有自己的ID,如下所示:
<my-directive id="dirOnPageX"></my-directive>
所以我可以根据id存储服务中的状态,但是这需要我将id属性添加到我放入HTML的每个指令中。有没有更好的解决方案?
也许来自给定指令的一些独特的东西转换为一些哈希,然后它将被用作id?但是,在指令中,什么可能是独一无二的并且有决心?
答案 0 :(得分:-1)
我认为您应该将指令状态存储在作用域而不是服务中,并使用该服务仅执行操作
它将允许您单独测试指令
希望这有助于:)