Cercando di implementare un componente textarea
con supporto di emoticon mentre scrittura.Supporto di emoticon per area di testo o contentedabile div
voglio potere a sostegno testo originale (solo caratteri ASCII) presentando il risultato filtrato html/generata (con un emoticons angolare filtrano) su un div
.
La mia soluzione iniziale è quello di
<textarea ng-model="text" ng-change="..." ng-focus="..."></textarea>
<div ng-bind-html="text | myEmoticonsFilter"></div>
ma sto avendo difficoltà a raggiungere la parte di utilizzo di una textarea nascosta. Inoltre, con questo non sarei in grado di selezionare il testo del mouse ed eliminare o copiare/incollare in modo sicuro.
Ho anche pensato di utilizzare un <div contenteditable="true">
ma ng-focus
e ng-change
non verranno gestiti.
Qualcuno ha qualche suggerimento su come continuare questo?
Modifica 1: ecco un jsfiddle con un tentativo su quello che sto facendo. Fino ad ora, in grado di sostituire la prima occorrenza, ma il comportamento rimane irregolare da quello. Sto usando una direttiva contenteditable
per l'associazione dati a 2 vie e per filtrare il modello di emoticon.
Edit 2: per quanto riguarda la mia dichiarazione dicendo che ng-focus
e ng-change
non sarà gestita, che non è vero - ng-focus
funziona in modo nativo su <div contenteditable="true">
e ng-change
funzionerà fino a quando una direttiva viene dichiarato utilizzando il ngModel
e l'impostazione del appropriato $modelValue
e $viewValue
(un esempio è fornito nello jsfiddle in Modifica 1).
Non ho la risposta alla domanda, ma è possibile aggiungere eventi di modifica/messa a fuoco a contenteditable utilizzando il codice fornito in [questo esempio] (https: // docs.angularjs.org/api/ng/type/ngModel.NgModelController # custom-control-example) dalla documentazione angolare ufficiale – pasine
Credo che la soluzione si intrometterà direttamente con gli oggetti 'window.getSelection' e' Range' quando un nodo viene fisicamente alterato nel 'contenteditable' – nuno
E riguardo l'uso della dipendenza di bower https://github.com/globaldev/angular-emoji-filter Non è lo stesso mathod che si desidera utilizzare, ma d'altra parte è una soluzione semplice e anche potente. Se hai bisogno di icone personalizzate di quelle che ritieni di considerare diverse. – Miha2255