我想更新排名我從另一個視圖中傳遞的現有模型的屬性。但是,我收到錯誤Uncaught TypeError:Object#has no method'set'。如何更新現有模型的屬性?
在視圖的初始化部分,我有:
this.collection = new tgcollection({model : this.options.model });
我定義一個函數的UpdateModel旨在更新屬性值:
updateModel: function(){
var val= $("#textbox_id").val();
console.log(val);
console.log(JSON.stringify(this.options.model));
JSON.stringify(this.options.model);
this.options.model.set({"rank": val});
this.render();
//
},
我要去哪裏錯了? 我可以在控制檯中看到值和模型及其以前的屬性值。
模型:
define(['jquery','underscore', 'backbone', 'deepmodel'],
function($,_, Backbone) {
var model = Backbone.DeepModel.extend({
// Default attributes for the model.
defaults : {
id: null,
rank: null,
},
initialize: function(){
_.bindAll(this,"update");
this.bind('change : cost', this.update);
},
update: function(){
console.log(this.get("cost"));
},
// Remove this model from *localStorage*.
clear : function() {
this.destroy();
},
});
return model;
});
我們可以看到'Backbone.Model'的代碼以及如何設置'options.model'嗎? –
我們可以看到你使用'updateModel'-function的代碼嗎? – jakee
編輯:增加功能更新和options.model – Amateur