次のプロパティを持つコントローラーがあります。
App.MyController = Ember.ArrayController.extend({
isSomething: false,
notSomething: Ember.computed.not('isSomething')
}
そして、何らかの理由で、デバッガーでコントローラーを見るとisSomething
、「独自のプロパティ」セクションで定義しましたが、「App.MyController」のプロパティとしても定義しました。「App.MyController」では、デバッガーは「独自のプロパティによってオーバーライドされている」と主張していますisSomething
が、どうやってこの状態になったのでしょうか?
ちなみに、notSomething
計算されたプロパティはfalseとして開始され、「独自のプロパティ」の値を変更してもisSomething
変更されません (「App.MyController」セクションでは変更できません)。
アップデート
わかりました、上記のコードよりも複雑なようです。私はまだかなり暗いですが、ここで私が言えることは...
- これは、プロパティ
MyController
を参照するテンプレートに条件付きのビューが各行に表示される配列コントローラーです。notSomething
- 条件文が次のように指定されている
{{#if notSomething}}
場合、上記のプロパティのオーバーライドは発生しませんが、それはビューでプロパティを探しているためだと思います...実際notSomething
、コントローラーの変数の値を変更しても効果はありません。 - 条件ステートメントが次のように記述されている
{{#if controller.notSomething}}
場合、上記は有効になります。
うまくいけば、それは少し役立ちます。どんな助けでも大歓迎です。
更新 2
デバッガーでコントローラーを見ることで私が意味することについて、いくつかの混乱がありました。うまくいけば明確になるスクリーンショットを次に示します。
実際のクラス名は UomsController ( ではありませんMyController
) ですが、コード スニペットは直接的な表現であることに注意してください。