2013-06-26 40 views
3

我似乎無法找到任何相關文檔,並且無法完全理解此代碼。哪些參數傳遞給綁定到Backbone.Model更改事件的處理程序?

我有骨氣模型,並在我的我的我的處理程序綁定到模型更改事件:我被傳遞給this.handleChange什麼樣的參數

var myModel = new ModelA(); 

var myView = new ViewA({ 
    model: myModel 
}) 

//in my view I have 
this.listenTo(this.model, "change", this.handleChange); 

可有人請解釋一下嗎?我看到 有2個參數,模型 & ,但它們究竟是什麼?

什麼時候我綁定到特定的屬性,像這樣發生的:

this.listenTo(this.model, "change:attr", this.handleChange); 

當我取消設置使用myModel.unset(「ATTR」)模型中的屬性;,傳遞給handleChange的值是什麼?我發現在某些情況下,值未定義,有時它有1個屬性unset = true

任何幫助或指向相關文檔將不勝感激。

回答

3

從代碼:

事件change:attr

this.trigger('change:' + changes[i], this, current[changes[i]], options); 

事件change

this.trigger('change', this, options); 

所以在第一種情況下,參數是:模型,價值,和使用的選項(包括外部和內部選項(例如,unset: true用於呼叫unset))。在第二種情況下,因爲它不涉及特定的屬性,所以參數是:模型和選項。

+0

因此,如果我理解,在第一種情況下,具有屬性,我得到該屬性的新值(即更改後的值)?如果我沒有設置這個屬性,我會得到:模型,未定義和任何選項(如unset:true)? – elanh

+0

什麼是傳遞的內部和外部選項?他們如何決定? – elanh

+0

@elanh你的第一個評論:應該是這樣的;第二:外部是你選擇的,內部是默認使用的內部(見方法的默認行爲)加上一些內部機制所必需的(比如unset標誌,因爲unset使用set)。 – Loamhoof

相關問題