我一直在我的頭上撞牆在這一個幾個小時.... 看着許多的一頁,我覺得我有我的腳本正確,但我的收藏在fetch方法中傳遞的add:true不會觸發add事件。我可以綁定到復位事件,但添加事件不會觸發..骨幹集合沒有觸發添加事件取得
型號:
test.Models.AppBlock = Backbone.Model.extend({
defaults: {
AppID: null,
AppName: null,
AppDescription: null
},
idAttribute: "AppID"
});
收藏:
test.Collections.AppBlock = Backbone.Collection.extend({
model: test.Models.AppBlock,
url: ApiPath + "apps/byuser",
Loading: false,
initialize: function() {
},
getAppBlocks: function() {
if (!this.Loading) {
this.Loading = true;
this.fetch({
data: JSON.stringify({
Token: test.Session.Token
}),
add: true, // OMG WTF ?!?!
type: 'POST',
dataType: 'json',
contentType: 'application/json',
cache: false,
success: this.getAppBlocksSuccess,
error: this.getAppBlocksError
});
}
},
parse: function (response) {
return response.Data;
},
getAppBlocksSuccess: function (that, response) {
},
getAppBlocksError: function (that, response) {
}
});
查看:
test.Views.DashboardLatestMain = Backbone.View.extend({
Loading: null,
initialize: function() {
this.template = _.template(test.Templates.DashboardLatestMain);
this.collection.bind('add', this.addAppBlock);
this.render();
},
render: function() {
$('#latest').prepend(this.template);
this.Loading = new test.Views.Loading({
el: '.main'
});
this.collection.getAppBlocks();
},
addAppBlock: function (appBlockModel) {
alert(appBlockModel); // no dice....
var appBlockView = new test.Views.AppBlock({
model: appBlockModel,
el: '#latest .main h3',
After: true
});
}
});
任何非常感謝幫助。
編輯
數據從API返回:
{
"Status":["1","OK"],
"Data":[{"AppID":1,"AppName":"test","AppDescription":"test"},
{"AppID":2,"AppName":"test","AppDescription":"test"}]
}
我們可以有更多關於你打電話回來的信息嗎?模型添加到集合中,但不會觸發「添加」事件? – Loamhoof
您使用BB 1.0嗎?如果不是,則需要使用'update:true',因爲在1.0之前,默認值是重置而不是更新,只觸發'重置'事件並且不會觸發'添加'事件。 –
@MikaelHärsjö我看不到你的觀點。他從服務器獲取數據,他爲什麼要使用set? – Loamhoof