在addone中,我正在创建新的视图对象
this.section = "aaa";
var sectionview = new AA(model:this.model,section:this.section);
部分是我传递给AA视图的另一个视图的全局变量。但是在传递部分之后,它的值会在添加一个这样的结束时得到更改
this.section = "aaa";
var sectionview = new AA(model:this.model,section:this.section);
.
.
.
.
.
.
this.section = "sss";
然后我如何更新我在创建视图AA时传递的部分的值? 预期答案是
this.options.section = "sss" not "aaa"
在AA视图中
答案 0 :(得分:3)
此类事情的常用方法是扩展Backbone.Events
以构建全局发布/子事件调度程序:
window.pub_sub = _({}).extend(Backbone.Events);
然后您的观点可以收听来自pub_sub
的事件:
initialize: function() {
this.listenTo(pub_sub, 'change:section', this.section_changed);
//...
},
section_changed: function(section) {
this.section = section;
// And whatever else needs to happen...
}
然后在更改部分时触发事件:
pub_sub.trigger('change:section', new_section_value);
您希望通过单个函数调用将所有更改汇总到全局部分,以确保触发事件,但无论如何您都应该这样做。
演示:http://jsfiddle.net/ambiguous/rPtfS/
如果您需要保留这些设置,请将pub_sub
更改为全局设置模型,并使用通常的模型持久性机制。