我一直在使用backbone.js + cordova + require.js框架,主要基於Cristophe Coenraets的PhoneGap examples on GitHub。在視圖中顯示我的模型似乎很簡單,但我仍然無法通過調用更新模型來設置或保存。TypeError試圖在Backbone.js中設置模型對象
我的模型看起來是這樣的:
SourcePhrase = Backbone.Model.extend({
// default values
defaults: {
id: null,
markers: "",
orig: null,
source: "",
target: ""
},
sync: function (method, model, options) {
if (method === "read") {
findById(this.id).done(function (data) {
options.success(data);
});
}
}
}),
// etc
我可以通過撥打電話拔對象從我收集的得到:
// find and update the model object
var strID = $(event.currentTarget.parentElement).attr('id');
var model = this.collection.get(strID);
到目前爲止,一切都很好:
model.set('target', trimmedValue);
TypeError:'undefined'不是函數(評估'(i = t [r])。callback.call(i.ctx,n,a )')
嗯......那是不對的。任何想法,我需要開始尋找跟蹤此?
編輯:控制檯輸出模式只是調用之前設置:
model: Object
_changing: false
_events: Object
_pending: false
_previousAttributes: Object
attributes: Object
id: "RUT001-10"
markers: "\hdr"
orig: null
source: "Ruth"
target: "Ruth"
__proto__: Object
changed: Object
cid: "c15"
collection: Object
id: "RUT001-10"
__proto__: Object
strID: "RUT001-10"
在'set'行之前放置'console.log(model)'。什麼是輸出? – msvalkon
@msvalkon:已添加。它看起來像在做一個引用副本(我認爲這是預期的) - 集合被設置爲集合對象。 – eb1
你是對的,我刪除了我的答案。 –