Backbone.js Джейд и цикл по модели

Я немного запутался по поводу шаблонов с использованием основы с нефритом /подчеркиванием.

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

Я следил за этим сообщением в блоге об использовании магистрали с нефритом и добавил следующее в мой основной файл

   _.templateSettings = {
      interpolate : /\{\{(.+?)\}\}/g
   };

который позволяет мне отображать атрибуты модели в этом поместье:

      //in my JavaScript
      this.template = _.template($("#some-template").html());

      //in my .jade template
      input.text(type='text', name="name", value='{{name}}')

я хочу выяснить, как сделать простой цикл над одним из массивов в модели. например.

    - for (var child in children)
        {{child}}

но я совершенно не уверен в правильном синтаксисе, где начинается нефрит, подчеркивание и т. д. Спасибо.

7 голосов | спросил henry.oswald 30 J000000Saturday11 2011, 18:31:56

1 ответ


0

Вы не можете использовать Jade в браузере (возможно, технически это возможно, но не так часто использовать с магистралью, в отличие от подчеркивания). Вы будете использовать шаблоны подчеркивания там. Документы по _.template показывают, что вы можете оценить javascript и использовать метод _.each для цикл по атрибутам массива вашей модели.

В конечном итоге это будет выглядеть так внутри функции render вашего представления. Вы захотите кешировать функцию шаблона в качестве атрибута вашего представления для эффективности, но здесь для простоты он встроен. Предположим, например, что у вас есть модель Car со списком drivers как массив имен драйверов.

var template = "<% _.each(model.drivers, function(name) { %> <li><%= name %></li> <% }); %>";
return _.template(template, this);

Обратите внимание, что вам нужно будет предоставить синтаксис evaluate в настройках шаблона, так как в этом примере используется стиль интерполяции (<%=) и стиль оценки (<%) шаблона разметки. В настоящее время у вас просто есть интерполяция в стиле усов, и этого недостаточно.

ответил Peter Lyons 30 J000000Saturday11 2011, 19:27:46

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132