我想重新渲染在$(window).resize()
事件上在复合视图中渲染的子视图,该事件已在我的复合视图的onShow()
中订阅。我们能做到吗?如果是,是否有首选方法?我想要这样的东西:
define([
"app",
"views/list-item",
], function(App, ListItem) {
var List= App.CompositeView.extend({
template: "list",
childViewContainer: ".list-items",
childView: ListItem,
onShow: function() {
$(window).on('resize', function() {
//re-render child View(ListItem)
});
}
});
return List;
});
根据this PR,CompositeView具有renderChildren
方法,具体取决于您的木偶版本。如果旧的话,它可能是私有的_renderChildren
。
旁注:在视图中包含全局选择器和事件是不好的做法。我将逻辑放在视图之外的单独脚本中。
您可以在父视图中实现'modelEvents'。在更改“ modelEvents”时,调用render方法,它将重新渲染视图。例如:
“ modelEvents”:{“ change:updateView”:“渲染”}
并切换'updateView'模型以调用此事件。