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