我有一个控制器和一个指令。该指令使用名为=
的{{1}}双向var和名为counter
的{{1}}表达式隔离范围。
该指令将更新&
并立即致电tick()
。
问题在于这些操作发生的顺序:
counter
已在指令tick()
在控制器上调用counter
醇>
我设法使用tick()
解决了他的问题,但这有点像黑客。
另一种解决方案是让counter
接受一个参数(setTimeout(tick,0);
的值)。
有没有比我上面描述的更好的解决方案?
答案 0 :(得分:2)
Treat scope as read only in templates Treat scope as write only in controllers
避免读取控制器中的值counter
。相反,将其作为模板中的参数传递。
setTimeout
技巧是一个黑客,应该避免依赖$digest
循环中各种观察者的执行顺序。