在js代码中分配范围变量

时间:2015-04-30 06:22:30

标签: javascript angularjs angularjs-directive

我希望将范围变量指定为计算变量
{{canMoveNext=((checkList.items | filter:NoMoveNextStatus).length==0)}}
canMoveNext是指令隔离范围变量
但我想用js代码写它 怎么写呢? 我不想使用手表功能

1 个答案:

答案 0 :(得分:1)

与控制器共享指令变量的方法:

  1. 即使你的范围是孤立的,你仍然可以让一些变量通过它。你可以在这里检查双向绑定。 看看这篇文章如何做到这一点: link

  2. 否则,如果可能,将范围从隔离范围更改为相同范围。然后该变量应该可用。

  3. 第三种方式,如果你没有做动态,那就是将值存储在工厂中,并将工厂作为依赖包含在指令和控制器中。每次更改时,该值都需要存储在工厂中。 (编辑:这可能不合适,因为你需要一块你不想使用的手表)

  4. 尝试使用solution1或2来避免这种情况,但有一个$rootscope,它是所有范围的父级,您可以包含它并将值存储在那里。它就像js中的全局变量,但你总是在angularjs里面。此外,您可以直接使用它:

    $scope.$root.someValueThatBehavesLikeGlobal = "value";