1

というビュークラスがありますApp.BlockView。と呼ばれるプロパティがselectedあり、このビューをクリックするとプロパティが切り替わりselectedます。

selectedコンテナの背景をクリックするなどの特定のイベントをキャプチャするとき、すべてのビュー(またはtrueに設定されているビュー)でプロパティをfalseに設定したいと思います。ビュークラスのすべてのインスタンスを(インスタンス化される場所と方法に関係なく)収集し、それらにプロパティを設定する方法はありますか?

私のビューはのようなハンドルバーテンプレートで作成されている{{View App.BlockView}}ため、それらへの参照を保持していないことに注意してください。

4

1 に答える 1

2

これを実現するために、ビューをクラスに登録および登録解除することができます。例えば

App.BlockView.reopenClass({
  blockViews: [],
  deselectAll: function() {
    this.blockViews.forEach(function(blockView) {
      blockView.set('selected', false);
    });
  }
});

App.BlockView.reopen({
  init: function() {
    this._super();
    App.BlockView.blockViews.pushObject(this);
  },
  destroy: function() {
    App.BlockView.blockViews.removeObject(this);
    this._super();
  }
});
于 2013-01-10T05:15:04.503 に答える