2013-06-09 3 views
0

Мне очень нравятся шаблоны handlebars.js, но я хочу подключить привязку данных для обновления шаблона при изменении данных. Я уже знаю, как сделать что-то вроде этого:Javascript Binding Templates to Data

var users = ['hello','world','third']; 
var source = '<form>{{#each users}}<input type="text" value="{{this}}">{{/each}}</form>'; 
var template = Handlebars.compile(source); 
$('.form-cont').html(template({users: users})); 

Если я хочу добавить другого пользователя позже

users.push('last'); 

Теперь обновить шаблон я обновить HTML-

$('.form-cont').html(template({users: users})); 

Я как и все, что изменилось для обновления, в приведенном выше коде оригинальный html уничтожается и заменяется новым шаблоном. Есть ли способ обновить только то, что изменилось? Значение добавляет элемент в каждый, не вытирая исходные входы.

Я знаю, что Knockout.js, Angular.js и Ember.js встроены в их рамки. Я ищу более легкое решение, которое обрабатывает привязку шаблонов, а не всю структуру. Есть что-нибудь там?

ответ

0

Рулевые инструменты не имеют встроенных данных. Ember.js и Sproutcore используют шаблоны Handlebars с расширениями привязки данных. Существуют также библиотеки, такие как juggy/backrub или backbone.modelbinding для интеграции с Backbone.js. Также посмотрите на mikeric/заклепки для поддержки общей привязки данных. Легкая опция может заключаться в использовании реализации с установленным массивом с возможностями pub-sub, например. Азер/новый список.