我似乎无法找到刷新页面区域的方法。我有一个下拉选择选项,可以通过模态对话框向该下拉列表添加新项目。我想重新绘制具有该选项的页面区域,其中包含新项目。我似乎无法找到一种方法来刷新木偶或骨干网页的那一部分。我知道我可以打电话
location.reload();
但我认为有更好的方法。谢谢!
答案 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)
要添加新项目,请使用CollectionView
或CompositeView
,然后在集合中添加新的添加项。
// 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'});