我刚刚发现了这个有趣的明显不一致什么是允许在角表达式:为什么赋值不总是在Angular表达式中工作?
- 有可能在表达
- 这打破如果转让涉及从ngRepeat
- 一个局部变量进行赋值这可以通过在表达使用在控制器的替代分配所限定的设定器来克服
docs on expressions似乎只是明确地禁止表达式中的控制流,而且我没有看到任何提及的上述行为。
我想这件事可能是一个更好的使用setter的设计模式,但是没有人知道表达式中可能有更多明确的参考吗?
也许这样会更好,如果Angular单方面禁止转让他们。 (相关的不一致是,似乎有可能在i = i + 1的表达式中增加,但是i + = 1没有增加)。
您应该使用一个对象作为模型,而不是通过$ parent访问父范围。访问$父导致脆弱的代码,因为如果要在两者之间添加另一个范围,它将停止工作。 – 2013-02-23 07:13:33
@AndersEkdahl你是对的,我只是给出了可用的选项作为答案,指针文章解释了用例和问题 – 2013-02-23 07:21:41
太棒了!感谢你及时的答复!这是完全合理的。仅供参考,实际使用情况是基于预览“色板”阵列在页面编辑器中动态选择页面背景。被设置的值被称为'selectedClass',但它是一个字符串,所以我猜它仍然是一个原始类型,同样的问题也适用。尽管看到你的解决方案真是太棒了,你认为控制器中的setter会是更好的设计吗? – bellkev 2013-02-23 07:23:12