今天是我的第一天backbone.js
所以在這裏輕鬆點我。 我有一個view
,一個collection
和一個model
填充select
。Backbone,解析JSON,然後如何觸發渲染?
我可以使用硬編碼array
填充select
。但我正在使用現有的API,我需要先解析響應。這似乎也行得通。
我不知道是誰來告訴發生了什麼變化,以便呈現我最近返回的結果/模型......代碼應該更有意義如果這沒有幫助。
var UserGroup = Backbone.Model.extend();
var UserGroups = Backbone.Collection.extend({
initialize:function(){
this.fetch();
},
model: UserGroup,
url: "http://myAPI/getUserGroups",
parse: function(json){
return json["GetUserGroups"]["Results"];
}
});
var GroupSelectView = Backbone.View.extend({
el: $("select"),
initialize: function() {
var that = this;
this.collection = new UserGroups();
this.render();
},
render: function(){
_.each(this.collection.models, function(group){
$("<option/>", { value: group.get("Id"), text: group.get("Name")}).appendTo(this.el)
}, this);
},
});
var groupSelectView = new GroupSelectView();
你認爲什麼?我知道了嗎?
我想這orignally但不變的情況下心不是被解僱,或者我應該手動觸發它? – JonWells
是這樣的:this.fetch({success:function(){that.trigger(「change」)}}); – JonWells
@CrimsonChin在對象發生變化時觸發(在這種情況下,UserGroup集合)在獲取或重置時會觸發更改事件,所以它會調用render方法 – jodarove