Установка (связанных) свойств объекта модели из представления в EmberJSPgrammatically?

Вопрос. Как обновить свойство объекта, чтобы оно соответствовало innerHtml элемента в представлении при нажатии кнопки?

Я работаю над созданием интерфейса редактирования контента с использованием EmberJS и атрибута HTML5 contenteditable (через редактор Hallo). Это означает, что valueBinding не работает, поскольку мы имеем дело с фактическим HTML-кодом страницы, а не с атрибутами значения input/textarea. Я создал похожее приложение в Backbone, в котором отсутствуют динамические привязки, но вы можете установить объект модели как свойство представления.

Как лучше всего заставить это работать с EmberJS? Должен ли я установить свойство представления для всей модели? Нужно ли мне создавать какую-то привязку innerHtml и помощник представления по образцу valueBinding?

Я создал скрипт с примером того, что я пытаюсь сделать (с базовой обработкой jQuery атрибута contentEditable вместо приветствия):

http://jsfiddle.net/W6gsW/2/

Спасибо!


person Ethan Winn    schedule 07.02.2012    source источник
comment
вы, вероятно, обнаружите, что ваш выбор фреймворков слишком усложняет то, чего вы пытаетесь достичь. не в обиду Эмберу.   -  person tnt-rox    schedule 07.02.2012
comment
Спасибо за перспективу, @tnt. На самом деле я создаю одно и то же приложение в Backbone и Ember, чтобы сравнить их. Ember, безусловно, имеет гораздо больше удобных функций, но в этом аспекте минимализм Backbone может быть преимуществом.   -  person Ethan Winn    schedule 07.02.2012


Ответы (1)


http://jsfiddle.net/ud3323/nXCvq/

Я изменил несколько вещей в том, как вы определили привязки в App.docView, чтобы сделать вещи чище. Мое решение кажется немного хакерским, но оно работает с одной строкой кода на каждое свойство.

person Roy Daniels    schedule 07.02.2012
comment
спасибо @ud3323. к сожалению, этот код, похоже, не работает для меня: если я редактирую HTML, а затем нажимаю «Сохранить», наблюдатель информации не срабатывает, и текст для обоих элементов HTML заменяется текстом объекта! - person Ethan Winn; 08.02.2012
comment
Обновлено. Извините, я немного поторопился... :) - person Roy Daniels; 08.02.2012
comment
Спасибо @ud3323, все работает отлично. Подводя итог, похоже, что решение состояло в том, чтобы привязать объект содержимого, а не отдельные его свойства, и использовать метод setPath в представлении для установки значения свойства при изменении. Рокин! - person Ethan Winn; 08.02.2012