Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript BackboneJS collection.reset()与collection.fetch()的比较_Javascript_Backbone.js - Fatal编程技术网

Javascript BackboneJS collection.reset()与collection.fetch()的比较

Javascript BackboneJS collection.reset()与collection.fetch()的比较,javascript,backbone.js,Javascript,Backbone.js,我已经读了很多关于这两种方法的文档,但我一辈子都搞不明白为什么你会使用一种方法而不是另一种 有人能告诉我一个基本的代码情况吗?一个是应用程序,另一个不是。reset()用于用新数组替换集合。例如: @collection.reset(@full_collection.models) 但是,将加载@full_集合模型 @collection.reset() 将返回空集合。 函数的作用是:返回模型的默认集合,我们假设您已经阅读了,否则这里会有点混乱 如果您查看和的文档,它说的是,假设您指定了集合

我已经读了很多关于这两种方法的文档,但我一辈子都搞不明白为什么你会使用一种方法而不是另一种

有人能告诉我一个基本的代码情况吗?一个是应用程序,另一个不是。

reset()用于用新数组替换集合。例如:

@collection.reset(@full_collection.models)
但是,将加载@full_集合模型

@collection.reset()
将返回空集合。
函数的作用是:返回模型的默认集合,我们假设您已经阅读了,否则这里会有点混乱

如果您查看和的文档,它说的是,假设您指定了
集合的
url
属性,该属性可能指向某些服务器代码,并且应该返回
模型的
json
数组,如果希望
集合
中填充要返回的
模型
,则将使用
获取

例如,在集合url上从服务器返回以下json:

[{
  id : 1, 
  name : "a"
 }, {
  id : 2, 
  name : "b"
 }, {
  id : 3, 
  name : "c"
 }]
成功获取后,将在您的集合中创建3个模型。如果您搜索
集合fetch
的代码,您将看到fetch将得到响应,并且内部将根据指定的选项调用
重置
添加

所以,回到讨论中,
reset
假设我们已经有了模型的
json
,我们希望将其存储在集合中,我们将把它作为参数传递给它。在您的生活中,如果您想要更新集合,并且您已经在客户端拥有了模型,那么您不需要使用
fetch
reset
将完成您的工作

因此,如果您希望在reset的帮助下在集合中填充相同的json,可以执行以下操作:

var _self = this;
$.getJSON("url", function(response) { 
  _self.reset(response); // assuming response returns the same json as above
});
好吧,这不是一个需要遵循的实践,因为这个场景
fetch
更好,它只是用作示例

页面上还有另一个重置示例

希望它能给你一点想法,让你的生活更美好:)

用你指定的一系列型号来设置该系列:

collection.reset( [ { name: "model1" }, { name: "model2" } ] );
使用为集合指定的URL从服务器检索集合数据

collection.fetch( { url: someUrl, success: function(collection) {
    // collection has values from someUrl
} } );


这个答案不完整。重置是否覆盖集合中的所有现有模型?