有没有一种简单的方法可以刷新提线木偶中的区域

is there an easy way to refresh a region in marionette?

本文关键字:刷新 提线木偶 区域 方法 有没有 一种 简单      更新时间:2023-09-26

我似乎找不到刷新页面区域的方法。我有一个下拉选择选项,可以通过模式对话框向下拉列表中添加新项目。我想用新项目重新绘制页面中有选择选项的区域。我似乎找不到用提线木偶或主干刷新页面那部分的方法。我知道我可以打电话给

location.reload();

但我想还有更好的方法。谢谢

我建议创建一个集合来容纳下拉项,然后使用Marionette.CompositeView来渲染下拉项
然后可以将项添加到集合中,并调用CompositeView.render()函数。

您可以尝试使用区域的show方法。

var Layout = Marionette.Layout.extends({ regions: {yourRegion : '#my-region-id'} });
var yourlayout = new Layout

当下拉事件发生变化时,创建一个新的视图,并使用show方法在区域内进行渲染。

view = new Marionette.ItemView()
yourlayout.yourRegion.show(view)

注意:一个区域一次只能渲染一个"视图"。在区域上运行show将自动关闭上一个视图并在其中呈现新视图。

要添加新项,请使用CollectionViewCompositeView,然后将新添加项添加到集合中。

  // Item view
ItemView = Backbone.Marionette.ItemView.extend({
  template: '#itemTemplate',
  // wrap the view with `tr` instead of `div`
  tagName: 'tr'
});
// Collection view
CollectionView = Backbone.Marionette.CollectionView.extend({
  // Specify the itemView to render each item
  itemView: ItemView,
  // wrap the view with `tbody` instead of `div`
  tagName: 'tbody'
});

var collection = new Backbone.Collection([{id: 1, name:'Joe'}, {id:2, name:'masan'}]);
var view = new CollectionView({
  collection: collection
});

如果要添加新项目,请将其添加到集合中。

collection.add({id:3, name: 'kumar'});