Я прочитал и прочитал документы по этим двум методам, но для меня жизнь не может понять, почему вы можете использовать один над другим?
Может ли кто-то просто дать мне базовую ситуацию с кодом, в которой кто-то будет приложением, а другой - нет.
Я прочитал и прочитал документы по этим двум методам, но для меня жизнь не может понять, почему вы можете использовать один над другим?
Может ли кто-то просто дать мне базовую ситуацию с кодом, в которой кто-то будет приложением, а другой - нет.
reset
устанавливает коллекцию с массивом моделей, которые вы указываете:
collection.reset( [ { name: "model1" }, { name: "model2" } ] );
fetch
извлекает данные коллекции с сервера, используя URL-адрес, указанный вами для коллекции.
collection.fetch( { url: someUrl, success: function(collection) {
// collection has values from someUrl
} } );
Мы предполагаем, что вы прочитали документацию , иначе это будет немного запутанно.
Если вы посмотрите документацию fetch и reset, то, что он говорит, предположим, что вы указали свойство url
для collection
- которое может указывать на некоторый код сервера и должно возвращать массив json
models
, и вы хотите collection
, который будет заполнен возвратом models
, вы будете использовать fetch
.
Например, у вас есть следующий json, возвращаемый с сервера на URL-адрес коллекции:
[{
id : 1,
name : "a"
}, {
id : 2,
name : "b"
}, {
id : 3,
name : "c"
}]
Что создаст 3 модели в вашей коллекции после успешной выборки. Если вы охотитесь за кодом collection fetch
здесь, вы увидите, что выборка получит ответ и внутренне вызовет либо reset
, либо add
на основе указанных опций.
Итак, возвращаясь к обсуждению, reset
предполагает, что у нас уже есть json of models
, который мы хотим сохранить в коллекции, мы передадим его как параметр для него. В вашей жизни, если вы хотите обновить коллекцию, и у вас уже есть модели на стороне клиента, тогда вам не нужно использовать fetch
, reset
выполнит вашу работу.
Следовательно, если вы хотите, чтобы тот же json был заполнен в коллекции с помощью reset, вы можете сделать что-то вроде этого:
var _self = this;
$.getJSON("url", function(response) {
_self.reset(response); // assuming response returns the same json as above
});
Ну, это не практика, которой следует следовать, поскольку этот сценарий fetch
лучше, его просто использовали, например.
Другой пример reset находится на странице .
Надеюсь, это даст немного идеи и сделает вашу жизнь лучше:)
reset() используется для замены коллекции новым массивом. Например:
@collection.reset(@full_collection.models)
будет загружать модели @full_collections, однако
@collection.reset()
возвращает пустую коллекцию. И функция fetch() возвращает коллекцию по умолчанию модели