Кто-то, создав приложение для нас, предоставил мне код, чтобы я мог пройти через него, , и я заметил это, что сначала кажется ОК, и даже приятно позволить коллекции управлять его данные , но через некоторое время я начал думать о возможных подводных камнях в этой идееBackbone.js извлечение коллекции из его метода инициализации
так: - это хорошая практика для извлечения данных коллекции из собственного метода инициализации.
, например:
var Book = Backbone.Model.extend({});
var Books = Backbone.Collection.extend({
url: '/books',
initialize: function(){
// do some logic here
// if collection is empty, fetch from server
if(this.size() == 0)
this.fetch();
}
});
я спрашиваю, потому что я чувствую, что это может быть проблемой в следующей ситуации:
предположим, что мы находимся в routeAction:
books: function() {
var books = new Books();
var bookList = new BookList({ collection: books });
}
ISN» Эта ситуация может привести к сбою, если выборка будет быстрее, чем инициализация представления, когда представление будет связано с событием сброса, сброс будет инициирован раньше была выполнена инициализация представления?
Я ошибаюсь, или я должен отправить билет, чтобы получить это исправление.
спасибо за понимание, я попрошу его отредактировать код соответствующим образом. вы правы в нескольких моментах, хотя я верю в его случай, что текущее приложение создает только 1 коллекцию, поэтому загрузка каждый раз, когда создается коллекция, на самом деле не проблема, хотя я вижу, что это становится проблемой, когда приложение идет в версии 2 или 3 в следующем году могут быть добавлены другие коллекции. – Sander
Как вы подразумеваете в своем вопросе, это вопрос правильного подхода. Извлечение внутри 'initialize' не приведет к ошибке. Это просто неэффективно, уродливо и * в принципе неправильно. – ggozad
@ mu-is-too-short Спасибо! Я потратил 20 минут, пытаясь вычислить блоки кода внутри списков и потерпел неудачу. Я пропустил свой рест ... – ggozad