При визуализации шаблона через Backbone просмотра вы часто будете в конечном итоге с некоторыми код, который выглядит примерно так:Шаблонный механизм, который связывает атрибуты модели для просмотра?
ShirtView = {
template: JST["/templates/shirt_template"],
el: ".shirt-element"
render: function() {
var html = this.template({color: this.model.color, size: this.model.size});
this.$el.html(html);
}
}
Это все хорошо, и ваш шаблон будет сделать с атрибутами, которые хотели. Но если this.model.color
изменится, оно не будет отражено в представлении. Затем вы можете использовать что-то вроде modelbinder для явного привязывания элементов в представлении к вашей модели, но это означает введение дополнительного кода в ваше представление.
Что мне интересно, если есть какие-то шаблонные механизмы, такие как Mustache или Handlebars, которые автоматически обновляют элементы, принадлежащие полям в объекте атрибутов по мере изменения модели, без необходимости указывать его в представлении?
Вы имеете в виду что-то подобное http://nytimes.github.com/backbone.stickit/? – neebz
Магистраль намеренно исключает, что столько приложений не нуждается в этой функции. Итак, вам нужно добавить его. ModelBinder - один достойный вариант. Другим является липт, как было предложено. Но, безусловно, есть свободные рамки, такие как AngularJS и KnockoutJS, которые его запекли. Однако они не предназначены для использования с Backbone. Механизмы шаблонов должны были бы понять, как отслеживать изменения данных, поэтому это не то, что просто plug-n-play, так как у Backbone есть свои собственные методы для запуска уведомлений об изменениях, например. – WiredPrairie
Если вам нравится Knockoutjs, вы можете объединить свои силы с помощью Knockback. http://kmalakoff.github.com/knockback/ – HungryCoder