有没有一种简单的方法来刷新牵线木偶的区域?

时间:2014-04-11 04:34:36

标签: javascript backbone.js marionette

我似乎无法找到刷新页面区域的方法。我有一个下拉选择选项,可以通过模态对话框向该下拉列表添加新项目。我想重新绘制具有该选项的页面区域,其中包含新项目。我似乎无法找到一种方法来刷新木偶或骨干网页的那一部分。我知道我可以打电话

location.reload();

但我认为有更好的方法。谢谢!

3 个答案:

答案 0 :(得分:2)

我建议创建一个集合来保存下拉项目,然后使用Marionette.CompositeView呈现下拉列表。
然后,您可以将项添加到集合中,并调用CompositeView.render()函数。

答案 1 :(得分:0)

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

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

在更改下拉事件时,创建一个新视图并使用show方法在区域内渲染它。

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

注意:1个区域一次只能渲染一个“视图”。区域上的运行显示将自动关闭上一个视图并在其中呈现新视图。

答案 2 :(得分:0)

要添加新项目,请使用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'});