gpt4 book ai didi

rest - 如何在一次调用中从 sequelize-restful-extended 中获取 Backbone Collection

转载 作者:行者123 更新时间:2023-12-03 22:24:01 27 4
gpt4 key购买 nike

我有一个名为 Instance 的模型,它工作正常。

define([], function(){
return Backbone.Model.extend({

urlRoot:'/api/Instances',
parse:function(content){
return content.data;
}
});
});

我的休息在这里
http://localhost:3000/api/Instances/1

返回这个
{"status":"success","data":{"id":1,"name":"bangladesh","write":null,"read":null,"createdAt":"2015-09-01T23:03:16.000Z","updatedAt":"2015-09-01T23:03:16.000Z","UserId":1}}

因此我的模型中的解析函数。到目前为止一切都很好。

如果我只是打电话
http://localhost:3000/api/Instances

然后我得到了我所有的记录块,
{"status":"success","count":212,"data":[
{"id":1,"name":"bangladesh","write":null,"read":null,"createdAt":"2015-09-01T23:03:16.000Z","updatedAt":"2015-09-01T23:03:16.000Z","UserId":1},
{"id":2,"name":"abqride","write":null,"read":null,"createdAt":"2015-09-01T23:03:58.000Z","updatedAt":"2015-09-01T23:03:58.000Z","UserId":1},
....

而我的收藏码就是这个
define(['models/instance.js'], function(Model){
return Backbone.Collection.extend({
url:'/api/Instances',
model:Model,
parse:function(content){
return content.data;
}
})
});

集合的上述代码将创建 212 个模型。我已经使用模型中的初始化函数检查了它,只是为了查看它是否被正确的数据调用,并且确实如此。

但在我看来代码当我去
          this.collection.each(function(model) {
console.log("model id="+model.get("id")+" count="+count++);
out+=model.get("id")+"="+model.get("name")+"<br>";
});

这些模型中什么都没有,但是有 212 个,我只得到 212 次“undefined=null”。

最佳答案

我可以看到三个选项,其中两个涉及自定义Backbone的使用:1.手动调用collection.sync,然后执行自定义代码,2.在初始collection.fetch()中传递自定义选项并在Model parse()方法中查找它。

然而,这两个选项并没有从源头上解决问题,因为问题在于初始响应级别。为了将响应级别过滤器应用于您的数据,请在启动应用程序之前尝试覆盖 Backbone.ajax():

Backbone.ajax = function () {
var settings = arguments[1] || arguments[0]; // jQuery.ajax(url[, settings])
var success = settings.success;
settings.success = function (data, status, xhr) {
if (success) { success(data.data, status, xhr); }
};
return Backbone.$.ajax.apply(Backbone.$, arguments);
};

关于rest - 如何在一次调用中从 sequelize-restful-extended 中获取 Backbone Collection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32636267/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com