0

次のプロパティを持つコントローラーがあります。

App.MyController = Ember.ArrayController.extend({
   isSomething: false,
   notSomething: Ember.computed.not('isSomething')
}

そして、何らかの理由で、デバッガーでコントローラーを見るとisSomething、「独自のプロパティ」セクションで定義しましたが、「App.MyController」のプロパティとしても定義しました。「App.MyController」では、デバッガーは「独自のプロパティによってオーバーライドされている」と主張していますisSomethingが、どうやってこの状態になったのでしょうか?

ちなみに、notSomething計算されたプロパティはfalseとして開始され、「独自のプロパティ」の値を変更してもisSomething変更されません (「App.MyController」セクションでは変更できません)。

アップデート

わかりました、上記のコードよりも複雑なようです。私はまだかなり暗いですが、ここで私が言えることは...

  1. これは、プロパティMyControllerを参照するテンプレートに条件付きのビューが各行に表示される配列コントローラーです。notSomething
  2. 条件文が次のように指定されている{{#if notSomething}}場合、上記のプロパティのオーバーライドは発生しませんが、それはビューでプロパティを探しているためだと思います...実際notSomething、コントローラーの変数の値を変更しても効果はありません。
  3. 条件ステートメントが次のように記述されている{{#if controller.notSomething}}場合、上記有効になります。

うまくいけば、それは少し役立ちます。どんな助けでも大歓迎です。

更新 2

デバッガーでコントローラーを見ることで私が意味することについて、いくつかの混乱がありました。うまくいけば明確になるスクリーンショットを次に示します。

実際のクラス名は UomsController ( ではありませんMyController) ですが、コード スニペットは直接的な表現であることに注意してください。

4

1 に答える 1