Задать вопрос
junk1114
@junk1114
Web-программист

Укажите, пожалуйста, на изъяны в коде на Backbone.js?

Изучаю Backbone.js, идет со скрипом. Подскажите, что в этом простом примере можно улучшить?
jsFiddle
  • Вопрос задан
  • 287 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 3
STJ
@STJ
Front-end developer
По сути пример нормальный. Бекбон на то и создан, что бы вы делали все сами и как хотите.
Разве что посоветую марионетку, она облегчит ваши страдания от бекбона.
Ответ написан
k12th
@k12th
console.log(`You're pulling my leg, right?`);
render: function(person) {
        var that = this;
        this.$el.empty();
        this.collection.each(function(person) {
            var personView = new PersonView({model: person});
            that.$el.append(personView.render().el);
        });
        return this;
    }


Collection#each это всего лишь закаррированный _.each, который третьим аргументом принимает контекст для итератора. То есть можно переписать так:
render: function(person) {
        this.$el.empty();
        this.collection.each(function(person) {
            var personView = new PersonView({model: person});
            this.$el.append(personView.render().el);
        }, this);
        return this;
    }

А еще этот кусок будет тормозить тем сильнее, чем больше элементов будет в списке.
Я обычно не делаю по вьюхе на каждый элемент, хватает одной вьюхи на весь список.

Ну по мелочи — отступы, всегда использовать {}, определиться, двойные или одинарные кавычки, не использовать однобуквенные переменные и параметры функций (что это за e — error, exception, event?).
В остальном криминала нет:)
Ответ написан
flamefork
@flamefork
Фигачу в PLEX
PersonView.prototype.render вызывается 2 раза: 1 раз в конструкторе (не стоит так делать) и один раз в цикле рендера коллекции.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы