我有一个名为App.BlockView
的视图类。它有一个名为selected
的属性,点击此视图可切换selected
属性。
当我捕获某些事件(例如单击容器的背景)时,我想在所有视图(或将其设置为true的视图)上将selected
属性设置为false。在ember中有没有办法收集视图类的所有实例 - 无论它们在何处以及如何实例化 - 并在它们上设置属性?
请注意,我的视图是在{{View App.BlockView}}
等手柄模板中创建的,因此我不会对它们进行引用。
答案 0 :(得分:2)
您可以在类上注册和注销自己以完成此操作。 e.g。
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();
}
});