是否可以在主干/牵线木偶上的任何自定义JQuery事件上重新呈现子视图?

问题描述 投票:0回答:2

我想重新渲染在$(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;
});
backbone.js marionette backbone-views backbone-events
2个回答
0
投票

根据this PR,CompositeView具有renderChildren方法,具体取决于您的木偶版本。如果旧的话,它可能是私有的_renderChildren

旁注:在视图中包含全局选择器和事件是不好的做法。我将逻辑放在视图之外的单独脚本中。


-1
投票

您可以在父视图中实现'modelEvents'。在更改“ modelEvents”时,调用render方法,它将重新渲染视图。例如:

“ modelEvents”:{“ change:updateView”:“渲染”}

并切换'updateView'模型以调用此事件。

© www.soinside.com 2019 - 2024. All rights reserved.