0

После создания веб-приложения, использующего магистраль для фирмы-разработчика двигателя, мне интересно, следует ли мне переместить логику «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> 
     {% } %} 
{% } %} 

ответ

1

Я думаю, что ваша первая реализация была правильной. Извлеките логику из представления. «Правильный» способ или «основной» способ заключается в том, чтобы сохранить логику там, где это необходимо:

  1. Код модели/коллекции домов «где» должны поступать данные.
  2. вид дома код «что» ему нужно делать/отображать. (что должно произойти, если произойдет событие X)
  3. шаблон должен введите код «как» его необходимо отобразить.

Я уверен, что у меня нет материала. Я буду ждать, пока комментарии не скажут мне, как я ошибаюсь, и тогда я исправлю это.

-Sheers

+0

Хорошо спасибо. Итак, если логика if/then хорошо в шаблонах? – SkyeBoniwell

+1

@ 999cm999 Да. все нормально –

 Смежные вопросы

  • Нет связанных вопросов^_^