gpt4 book ai didi

javascript - collection.reset 未填充所有模型

转载 作者:行者123 更新时间:2023-12-03 10:17:02 25 4
gpt4 key购买 nike

我的 Backbone 集合调用这样的获取

collection.fetch({data : {product_type: foo, year: bar}, processData: true, success: function(response){
console.log(response, "response from server");
collection.reset(response);
}});

在 Chrome 控制台中,它显示数组有 6 个记录,但是当我进一步检查响应时,数组中实际上有 0 个模型。您可以通过注意第一行中的数字 6 和最后一行中的 Array[0] 来看到这一点:

MyCollection {length: 6, models: Array[6], _byId: Object, sortField: "date", sortDirection: "DESC"…}
_byId: Object
_events: Object
_listenId: "l1"
length: 0
model: function (attrs, options) {
models: Array[0]
//...other details ommitted...//

此外,我的 6 个预期模型中只有 1 个出现在 View 中。鉴于以上情况,我以为可能会出现 0 或 6,但确实出现了 1。

为什么该系列没有重置所有 6 个模型?

最佳答案

基于文档 Collection#fetch我可以看到 success 回调有 3 个参数

(collection, response, options)

因此,在您的情况下,response 是一个基于服务器的 JSON 数组更新的 collection,因此您无需重置它再次,您使用集合重置它意味着您添加清除集合并添加新模型,该模型实际上是集合本身。所以你可以改用

collection.reset(response.models)

但我认为您不应该在 success 回调中对集合执行任何操作,backbone 会自动为您执行此操作。

关于javascript - collection.reset 未填充所有模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29826878/

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