Динамическая установка id и className в представлениях Backbone.js

Я изучаю и использую Backbone.js.

У меня есть модель элемента и соответствующее представление элемента. Каждый экземпляр модели имеет атрибуты item_class и item_id, которые я хочу отображать как атрибуты id и class соответствующего представления. Как правильно этого добиться?

Пример:

var ItemModel = Backbone.Model.extend({      
});

var item1 = new ItemModel({item_class: "nice", item_id: "id1"});
var item2 = new ItemModel({item_class: "sad", item_id: "id2"});

var ItemView = Backbone.View.extend({       
});

Как мне реализовать представление, чтобы элементы el представлений переводились в:

<div id="id1" class="nice"></div>
<div id="id2" class="sad"> </div>

В большинстве примеров, которые я видел, представление el служит бессмысленным элементом оболочки внутри которого нужно вручную писать «семантический» код.

var ItemView = Backbone.View.extend({
   tagName:  "div",   // I know it's the default...

   render: function() {
     $(this.el).html("<div id="id1" class="nice"> Some stuff </div>");
   }       
});

Итак, при рендеринге получается

<div> <!-- el wrapper -->
    <div id="id1" class="nice"> Some stuff </div>
</div>

Но это кажется пустой тратой - зачем нужен внешний div? Я хочу, чтобы el транслировался напрямую во внутренний div!

85
задан Emile Bergeron 17 March 2019 в 05:00
поделиться