2013-05-13 113 views
1

在addone IM創建的視圖新對象一樣,更新值傳遞到骨幹視圖

this.section = "aaa"; 
var sectionview = new AA(model:this.model,section:this.section); 

部分是即時通訊傳遞到AA view.But另一種觀點的全局變量傳遞部分的價值得到在結束後的變化的添加一個這樣

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

我有點困惑。你在哪裏收到錯誤的價值?在'AA'裏面還是在'addone'裏面? – muneebShabbir 2013-05-13 07:03:28

+0

我沒有在任何地方得到錯誤的數值..我只是想要在AA視圖中更新數值 – NewBuddy 2013-05-13 07:23:32

回答

3

通常的方法來這樣的事情是延長Backbone.Events建立一個全球性的pub/sub事件調度:

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到全局設置模型,並用通常的模型持久性機制。