我创建了一个骨干模型如下
var note_model = Backbone.Model.extend({
default : {
HistoryKey : "",
InsertDate : "",
MemberKey : "",
NoteDate : "",
ContactNote : "",
UserId : ""
},
initialize : function(note) {
this.HistoryKey = note.historykey;
this.InsertDate = note.insertdateUTC;
this.MemberKey = note.memberkey;
this.NoteDate = note.notedateUTC;
this.ContactNote = note.contactnote;
this.UserId = note.userid;
console.log(this.get('HistoryKey'));
}
});
现在我创建了一个集合,其中定义了一个url,并使用collection的fetch方法填充模型。现在,只要我使用
访问模型数据,就填充模型model_object.HistoryKey
我正在获取数据但是当我尝试使用
时model_object.get("HistoryKey")
我得到了未定义的值。 JSON数据的结构就是这样的
{
"historykey": 4,
"insertdateUTC": "2013-11-15T23:21:44.247",
}
但是,如果我使用
model_object.get("historykey")
我收到了正确的数据。 我的问题是为什么我没有使用member.get(“HistoryKey”)获取数据。
答案 0 :(得分:1)
您应该在this.set("HistoryKey", note.historykey)
方法中使用initialize
。你正在做的是在对象上设置属性,但你想要做的是在Backbone模型上设置一个属性。如果您在示例中使用console.log(this.HistoryKey)
方法编写initialize
,则将获取您要查找的值。阅读:http://backbonejs.org/#Model-set
答案 1 :(得分:0)
您应该使用set
来更改模型的属性:
this.set('HistoryKey', note.historykey);
this.set('InsertDate', note.insertdateUTC);
this.set('MemberKey', note.memberkey);
this.set('NoteDate', note.notedateUTC);
this.set('ContactNote', note.contactnote);
this.set('UserId', note.userid);
get
可以访问这些属性。