@rakro

Разные шаблоны в backbone.js?

В backbone новичек. Нужно быстро разобраться в следующем вопросе. Возможно ли для одной и той же модели использовать разные шаблоны, в зависимости от атрибута модели? Например поле online == true? рисуем один шаблон, false другой.
  • Вопрос задан
  • 186 просмотров
Решения вопроса 1
27cm
@27cm
TODO: Написать статус
Вообще, возможно.

var ModelView = Backbone.View.extend({
    // ...

    render: function() {
        var $template = this.model.get('online') ? $('#template1') : $('#template2');
        var template = _.template($template.html());
        this.$el.html(template(this.model.toJSON()));
        return this;
    }
});


Но в большинстве случаев логичнее создавать два разных представления, каждый со своим шаблоном, своими событиями и т. п.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Я бы сделал просто if в шаблоне:)
Ответ написан
Комментировать
Staltec
@Staltec
Node.js разработчик
Вопрос поставлен некорректно. Шаблоны (template) вообще не должны иметь прямое отношение к модели (Model). Они относятся к представлениям (View). Правильно было бы в зависимости от состояния атрибута модели, рендерить соответствующее представление. Жонглирование разными шаблонами в одном представлении - кривые костыли которые очень скоро могут потребовать рефакторинга, если у вас функциональность этих представлений начнёт сильно различаться.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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