Я заметил, что марионетка очень не склонна к свободе, так как далеко продвигается свобода, которую они дают вам, чтобы выбрать способ визуализации данных. Похоже, что есть много способов изначально делают шаблон с пользовательскими даннымиserializeData function vs Marionette.renderer для пользовательских данных
Вернувшиеся шаблон с данными:
template: function() {
var myTemplate = $('.someTemplate')
return _.template(myTemplate.html())({some: data});
}
Очень аналогично:
render: function() {
var template = this.getTemplate();
var html = Marionette.Renderer.render(template, {
model: this.model.toJSON(),
customData: this.customData
});
this.$el.html(html);
}
Serialize данные:
serializeData : function() {
var customData = {some: 'data'};
var model = this.model.toJSON()
return _.extend(customData, model);
}
Я видел много людей в разных вариантах использования кода первого и второй. Я лично предпочитаю использовать serializeData, но любопытно: есть ли преимущество или прецедент, когда было бы целесообразно использовать первые два метода вместо serializeData?
В чем преимущества использования templateHelpers vs serializeData? – Yahkob
serializeData - это внутренний метод Marionette, который дает различные выходные данные для коллекции и модели. Вы можете увидеть его реализацию здесь: https://github.com/marionettejs/backbone.marionette/blob/master/src/item-view.js#L22 Вот почему я люблю оставлять его в покое. Это только вопрос конвенции. – Paulius
Согласованный, 'templateHelpers' должен быть стандартным подходом. @Yahkob, я немного написал о различии в [этом ответе] (http://stackoverflow.com/a/32232761/2395796). –