我刚刚发现了HTML5中的contenteditable
规范。基本上,它允许任何html元素在您单击时可编辑,只需将该属性设置为true即可。例如:
<p contenteditable=true>Editable content</p>
单击它时,将是可编辑的。
不幸的是,这并没有通知Ember有关更改Ember对象的信息,因此Ember不知道该值已被更改。
我不确定绑定是如何工作的,但这有可能以某种方式实现吗?
这是一个显示我正在谈论的fiddle。
答案 0 :(得分:10)
相反,使用contenteditable
是完全可能的,也是一种很好的方法,可用于实现自动调整大小等输入区域的某些用例。
Ember.js已经包含<input>
个元素的视图类,但<div>
个元素的contenteditable
元素都没有设置为true
。这里的关键是绑定到div的HTML内容并公开value
属性,就像Ember.TextField
一样。
我在博客文章中介绍了这一点,可以在这里找到:http://www.kaspertidemann.com/handling-contenteditable-in-ember-js-via-app-contenteditableview/
博客文章归结为App.ContenteditableView
的介绍,其来源可在此处找到:https://github.com/KasperTidemann/ember-contenteditable-view
我希望这有帮助!
答案 1 :(得分:2)
我不会使用html5 contenteditable
,因为,就像你说的那样,你不与ember交谈。
查看this fiddle以了解我将如何在ember中执行此操作。它没有令人满意的酷感因素,但至少你知道它适用于所有浏览器。