Усы шаблон с разными штатами - PullRequest
1 голос
/ 27 февраля 2012

У меня есть флаг состояния в моей модели, который может принимать одно из четырех значений: активное, неактивное, обработка или загрузка.

В шаблоне с усами я хочу включать и выключать различные части шаблона в зависимости от значения флага состояния. Есть ли достойный способ сделать это?

Я не хочу иметь 4 разных шаблона - по одному для каждого штата.

Я попытался использовать метод isActive, isProcessing и т. Д. В модели, который возвращает this.get('status') === 'active', но в качестве функции он не будет передан в шаблон.

1 Ответ

4 голосов
/ 27 февраля 2012

AFAIK, обычный подход - преобразовать вашу модель в простой блок данных с помощью toJSON и затем передать блок данных в ваш шаблон усов.Итак, все, что вам нужно сделать, это предоставить свой toJSON, который включает в себя ваши вызовы методов как атрибутыНапример:

toJSON: function() {
    var json = Backbone.Model.prototype.toJSON.call(this);
    json.isActive     = this.isActive();
    json.isProcessing = this.isProcessing();
    return json;
}

Демонстрация (откройте консоль, пожалуйста): http://jsfiddle.net/ambiguous/22aYH/

Затем вы можете иметь такие вещи в своем шаблоне:

{{#isActive}}It is active!{{/isActive}}
{{#isProcessing}}Be patient, we're working on it...{{/isProcessing}}
...