This plugin provides a <contenteditable/>
element supporting v-model
. It also provides some (optional) features, like preventing html input / paste or new lines.
It is inpired by the nice (but limited by design) https://github.com/asconwe/vue-contenteditable-directive .
Contrary to vue-contenteditable-directive
, this plugin has full support of v-model reactivity.
The response is generally NO.
But... there are edge cases where neither <input/>
nor <textarea>
could suit, for example when you need a dynamic object size to adapt to user input text size.
npm install --save vue-contenteditable
In your main.js
:
The needed files are already provided in dist/
, but if you want to re build, simlply run :
npm run build
Where you need a contenteditable
element :
tag
String
Html element type (p
,div
...)v-model
v-model
as usually used with<input/>
and<textarea/>
:contenteditable
(Default :
true
) Forwarded to DOM's contenteditable.noHTML
(Default :
true
) Prevent insertion (either typed or pasted) of html textnoNL
(Default :
false
) Prevent insertion of new-lines. Also activatereturned
event emissionv-on:...
All comon input DOM events are forwarded, so that you can use
v-on
as usual.
returned
When the user press :kbd:Return and
noNL
is set, then it emits thereturned
event with the current value (asString
) as argument.
This code is provided as-is, under the terms of the MIT license (see License file for more details).
A link to the original sources and contribution / pull request are welcome if you enjoy / use / contribute to this module ! :)