2013-06-13 109 views
4

我剛剛發現了HTML5中的contenteditable規範。基本上,只要將該屬性設置爲true,它就允許任何html元素在您點擊時可編輯。例如:Ember和HTML5 contenteditable屬性

<p contenteditable=true>Editable content</p> 

當您點擊它時會被編輯。

不幸的是,這並沒有通知Ember有關更改Ember對象,所以Ember不知道該值已被更改。

我不確定綁定是如何工作的,但是這可能會以某種方式實現嗎?

這裏是一個fiddle來顯示我在說什麼。

+0

我試圖用view,action,helper等實現這個,但是失敗了。我會使用Gevious的方法,因爲它仍然非常簡單,並且會有更廣泛的瀏覽器支持。 – Anonymous

回答

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

我希望這可以幫助!

2

我不會使用html5 contenteditable,因爲像你說的那樣,你不會用燼與對話。

看看this fiddle看看我將如何在燼中做到這一點。它不具備contenteditable的酷炫因素,但至少你知道它可以在所有瀏覽器上運行。

+0

是的,這將是一種做法,我可能會使用它,但是,但是,我想知道如何使_cool_解決方案工作:) – mehulkar

+0

是啊,可容納的肯定是很酷。我確信它將在不久的將來成爲標準做法 – Gevious

+0

contenteditable似乎已經被衆多瀏覽器支持:http://caniuse.com/contenteditable –