我正在尝试在我的第一个"真正的"应用程序中使用backbone.js,我需要一些帮助来调试为什么某些模型更改事件没有像我期望的那样触发.
如果我从服务器创建一个JSON 数组的集合,然后按设定的时间间隔获取()它,如果集合中的单个模型发生了变化,我不会收到通知.主干文档建议应生成此类通知.我似乎得到的只是每次获取的刷新通知,这是没用的.OTOH,如果我从服务器的JSON 对象创建模型,然后按设定的时间间隔获取()模型,我会在属性更改时收到更改通知.有任何想法吗?
细节
/ employees/{username}/tasks中的我的Web服务返回一个JSON任务对象数组,每个任务对象都嵌套一个子任务对象的JSON数组.例如,
[{
"id":45002,
"name":"Open Dining Room",
"subtasks":[
{"id":1,"status":"YELLOW","name":"Clean all tables"},
{"id":2,"status":"RED","name":"Clean main floor"},
{"id":3,"status":"RED","name":"Stock condiments"},
{"id":4,"status":"YELLOW","name":"Check / replenish trays"}
]
},{
"id":47003,
"name":"Open Registers",
"subtasks":[
{"id":1,"status":"YELLOW","name":"Turn on all terminals"},
{"id":2,"status":"YELLOW","name":"Balance out cash trays"},
{"id":3,"status":"YELLOW","name":"Check in promo codes"},
{"id":4,"status":"YELLOW","name":"Check register promo placards"}
]
}]
Run Code Online (Sandbox Code Playgroud)
另一个Web服务允许我更改特定任务中特定子任务的状态,如下所示:/ tasks/45002/subtasks/1/status/red [旁边 - 我打算将其更改为基于HTTP的HTTP服务,但目前的实现更容易调试]
我的JS应用程序中有以下类:
子任务模型和子任务集合
var Subtask = Backbone.Model.extend({});
var SubtaskCollection = Backbone.Collection.extend({
model: Subtask
});
Run Code Online (Sandbox Code Playgroud)
具有子任务集合的嵌套实例的任务模型
var Task = Backbone.Model.extend({
initialize: function() {
// each Task …Run Code Online (Sandbox Code Playgroud)