После создания веб-приложения, использующего магистраль для фирмы-разработчика двигателя, мне интересно, следует ли мне переместить логику «if/then» из html-шаблонов.Переместить if/then логику в виде или модели или сохранить в шаблоне?
Чтобы пояснить, что я имею в виду, вот два примера, которые я сейчас использую в производстве.
Если я переведу логику if/then из шаблона, я бы переместил ее в представление, но я не уверен, что это способ «правильно» или «позвоночник».
Я принимаю плохие дизайнерские решения, или это то, что я сделал ОК?
Спасибо!
Простой пример 1:
В представлении:
//m is the model used by the view
return Backbone.View.extend({
template: _.template(tmpl, null, { variable: 'm' }),
В шаблоне:
{% if(m.title) { %}
<h4> {%- m.title %} </h4>
{% } else { %}
<h4>Experiment Title Goes Here</h4>
{% } %}
комплекс Пример 2:
В представлении:
//args are the model attributes passed into the view
initialize: function (args) {
this.currentEngine = args.currentEngine;
this.engineDisplay = args.engineDisplay;
this.engineType = args.engineType;
this.isCurrent = this.model.isCurrent(this.currentEngine);
},
render: function() {
this.$el.html(this.template({
engineDisplay: this.engineDisplay,
engineType: this.engineType,
isCurrent: this.isCurrent;
}));
В шаблоне:
{% if(!engineDisplay) { %}
{% if (m.isCurrent && (engineType === 'GAS' || engineType === 'ECO')) { %}
<span>Not Available</span>
{% } else { %}
<span>
<span>Click here to select</span>
</span>
{% } %}
{% } %}
Хорошо спасибо. Итак, если логика if/then хорошо в шаблонах? – SkyeBoniwell
@ 999cm999 Да. все нормально –