我有一个名为App.BlockView
. 它有一个名为的属性selected
,单击此视图会切换该selected
属性。
当我捕获某些事件(例如单击容器的背景)时,我想selected
在所有视图(或将其设置为 true 的视图)上将属性设置为 false。ember 中是否有任何方法可以收集视图类的所有实例——无论它们在何处以及如何实例化——并在它们上设置属性?
请注意,我的视图是在车把模板中创建的{{View App.BlockView}}
,因此我不保留对它们的引用。
我有一个名为App.BlockView
. 它有一个名为的属性selected
,单击此视图会切换该selected
属性。
当我捕获某些事件(例如单击容器的背景)时,我想selected
在所有视图(或将其设置为 true 的视图)上将属性设置为 false。ember 中是否有任何方法可以收集视图类的所有实例——无论它们在何处以及如何实例化——并在它们上设置属性?
请注意,我的视图是在车把模板中创建的{{View App.BlockView}}
,因此我不保留对它们的引用。
您可以让视图在类上注册和注销自己来完成此操作。例如
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();
}
});