Làm cách nào để ngăn chức năng phân tích cú pháp cho mô hình trong tìm nạp bộ sưu tập?Xương sống - không phân tích từng mô hình trong bộ sưu tập sau khi tìm nạp
$(function() {
var Task = Backbone.Model.extend({
url : function() {
return this.urlRoot + this.id;
},
urlRoot: 'index.php?c=light&a=list_tasks_bb&ajax=true&task=',
parse: function (response, options) {
console.log(options);
console.log(response);
return response;
}
});
var TaskList = Backbone.Collection.extend({
model: Task,
url: 'index.php?c=light&a=list_tasks_bb&ajax=true',
initialize: function() {
},
parse: function (response, options) {
return response.tasks;
}
});
var Light = Backbone.Router.extend({
el: $('#light'),
routes: {
"tasks/:id": "taskAction",
"*page": "defaultAction",
},
initialize: function() {
_this = this;
this.tasks = new TaskList();
this.users = new UserList();
},
taskAction: function(id) {
this.task = new Task({id: id});
$.when (
this.task.fetch()
).then(function(zzz) {
new TaskView({model: _this.task}).render();
});
},
defaultAction: function(page) {
$.when (
this.tasks.fetch(),
this.users.fetch()
).then (function() {
new TaskListView({collection: _this.tasks}).render();
});
}
});
});
Tôi có một mô hình và một bộ sưu tập mà tôi có được thông qua tìm nạp ajax. Tôi không có cơ hội thay đổi chương trình phụ trợ, do đó cấu trúc json của danh sách nhiệm vụ là:
"contents": {},
"current": false,
"errorCode": 0,
"errorMessage": "",
"u": 4,
"tasks": [{
"id": "12250",
"t": "ZZZ",
"cid": "24",
"c": "2013-08-22 11:36:32",
"dd": "02.09.2013",
"sd": "02.09.2013",
"pr": "300",
"pid": "0",
"atid": "1:4",
"s": 0,
"dl": ""
}, {
"id": "12307",
"t": "ZZZ",
"cid": "42",
"c": "2013-08-28 11:14:44",
"dd": "05.09.2013",
"sd": "28.08.2013",
"pr": "200",
"pid": "0",
"atid": "1:4",
"s": 0,
"dl": ""
}, {
"id": "12326",
"t": "ZZZ",
"cid": "2",
"c": "2013-08-29 09:55:34",
"dd": "31.08.2013",
"sd": "29.08.2013",
"pr": "200",
"pid": "0",
"atid": "1:4",
"s": 0,
"dl": ""
}],
"events": []
Đây là lý do tôi sử dụng phân tích để thu thập. Trong bước này mọi thứ đều ổn. Cấu trúc JSON cho một tác vụ là:
"contents": {},
"current": false,
"errorCode": 0,
"errorMessage": "",
"u": 4,
"tasks": [{
"id": "12250",
"t": "ZZZZ",
"cid": "24",
"c": "2013-08-22 11:36:32",
"dd": "02.09.2013",
"sd": "02.09.2013",
"pr": "300",
"pid": "0",
"atid": "1:4",
"text": "XXXXX",
"s": 0,
"dl": ""
}],
"comments": [{
"id": "48178",
"text": "CCCC",
"cid": "4",
"con": "23.08.2013"
}],
"events": []
Vì vậy, tôi cần phân tích cú pháp lần nữa để tìm nạp tác vụ đơn sau "task.fetch()". Sau khi tôi thêm chức năng phân tích cú pháp vào mô hình, nó hoạt động tốt cho đến khi tôi bắt đầu tìm nạp bộ sưu tập, vì sau khi thu thập phân tích cú pháp tôi đã có dữ liệu mô hình chính xác, nhưng mô hình gọi lại cho mỗi mô hình một lần nữa.
Tôi có cách khắc phục sự cố này hoặc tốt hơn sẽ cố gắng thay đổi chương trình phụ trợ không?
PS Chắc chắn, tôi có thể làm một cái gì đó như thế này:
if(response.tasks) {
return response.tasks[0];
} else {
return response;
}
Nhưng tôi nghĩ rằng nó không phải là giải pháp đúng.
THANK YOU! bạn đã cứu tôi rất nhiều thời gian. –
Tôi mất một ngày để phát hiện ra vấn đề phân tích lại, vị cứu tinh thực sự. – topless