我刚刚发现 Angular 表达式中允许的内容存在这种有趣的明显不一致:
- 可以在表达式中执行赋值
- 如果分配涉及来自 ngRepeat 的局部变量,则会中断
- 这可以通过使用控制器中定义的设置器而不是表达式中的赋值来克服
关于表达式的文档似乎只是明确禁止表达式中的控制流,而且我没有看到任何提及上述行为的内容。
我想从中得出的结论是,无论如何使用 setter 可能是一种更好的设计模式,但是有没有人知道关于表达式中可能发生什么的更明确的参考?
如果 Angular 单方面禁止在它们中分配可能会更好。(一个相关的不一致是,似乎可以在表达式中增加 i = i+1 但不能增加 i+=1...)