我有一个具有以下属性的控制器:
App.MyController = Ember.ArrayController.extend({
isSomething: false,
notSomething: Ember.computed.not('isSomething')
}
出于某种原因,当我在调试器中查看控制器时,我已经isSomething
在“Own Properties”部分定义了,但后来又作为“App.MyController”中的一个属性。在“App.MyController”中,调试器声称isSomething
“被它自己的属性覆盖”,我猜是这样,但我是如何进入这种状态的?
附带说明一下,notSomething
计算的属性以false开始,并且当我更改isSomething
“自己的属性”中的值时不会更改(我无法在“App.MyController”部分更改它)。
更新
好的,它似乎比上面的代码更复杂。我仍然在黑暗中很漂亮,但这是我能说的......
- 这是一个数组控制器,其中每一行都显示一个视图,该视图在引用该属性
MyController
的模板中具有条件。notSomething
- 如果条件语句声明为,
{{#if notSomething}}
则不会发生上述对属性的覆盖,但我认为那是因为它正在视图中查找属性......实际上更改notSomething
控制器中变量的值没有效果。 - 如果条件语句是这样,
{{#if controller.notSomething}}
那么上面提到的确实生效。
希望这会有所帮助。任何帮助将不胜感激。
更新 2
我在调试器中查看控制器的意思有些混乱。这是一个希望澄清的屏幕截图:
请注意,实际的类名是 UomsController (不是MyController
),但代码片段是直接表示。