我希望将范围变量指定为计算变量
{{canMoveNext=((checkList.items | filter:NoMoveNextStatus).length==0)}}
canMoveNext
是指令隔离范围变量
但我想用js代码写它
怎么写呢?
我不想使用手表功能
答案 0 :(得分:1)
与控制器共享指令变量的方法:
即使你的范围是孤立的,你仍然可以让一些变量通过它。你可以在这里检查双向绑定。 看看这篇文章如何做到这一点: link
否则,如果可能,将范围从隔离范围更改为相同范围。然后该变量应该可用。
第三种方式,如果你没有做动态,那就是将值存储在工厂中,并将工厂作为依赖包含在指令和控制器中。每次更改时,该值都需要存储在工厂中。 (编辑:这可能不合适,因为你需要一块你不想使用的手表)
尝试使用solution1或2来避免这种情况,但有一个$rootscope,它是所有范围的父级,您可以包含它并将值存储在那里。它就像js中的全局变量,但你总是在angularjs里面。此外,您可以直接使用它:
$scope.$root.someValueThatBehavesLikeGlobal = "value";