骨幹模型.get()
和.set()
如果您的值是簡單屬性,那麼這些例程都可以。我已經繼承了一個應用程序,但其值也是JSON對象。骨幹模型,JSON和HTML表格
即model.get("key")
返回
{start:
{top:5, bottom:6},
end:{...}
}
等設置任何使用.set()
這些值是皮塔餅,因爲你必須拔出舊值,讓你想要的變化,踢它回。即如果我需要bottom
= 7,則不能僅僅執行.set("start.bottom",7)
。我需要做的是這樣的:
var tempValue = model.get("start");
tempValue.bottom = 7;
model.set("start",tempValue)
模型有一個屬性,屬性,在這裏你可以做model.attributes.start.bottom = 7
。現在這大概不會觸發任何事件處理程序,因爲查看Backbone代碼,這在set
中完成。
所以兩個問題:
- 如果我不需要改變處理火,有什麼不對 與設置屬性直接。
- 有沒有辦法在設置屬性後手動觸發 更改處理程序?
的骨幹更新日誌說 - 「的型號更改方法已被刪除,因爲延遲屬性的變化是不再可用」但是我不完全知道爲什麼會。這聽起來很有用。
與此相關:我也試圖將HTML表單解析到模型中。我一直在試圖使用ModelBinder,但它無法處理嵌套的JSON。例如<input type="text" name="start.top">
編輯: 我剛剛意識到你可以用對象做model.set({})
。例如model.set({start :{top:7}});
但它是一個有點笨重