Foros del Web » Programando para Internet » Javascript » Frameworks JS »

AngularJS - ng-bind no funciona en textarea con plugin

Estas en el tema de AngularJS - ng-bind no funciona en textarea con plugin en el foro de Frameworks JS en Foros del Web. Hola, colegas. Tengo un textarea de un formulario que quiero enlazar con una variable de mi scope en angular. La directiva ng-bind funciona bien con ...
  #1 (permalink)  
Antiguo 30/03/2016, 00:43
Avatar de Kluster  
Fecha de Ingreso: agosto-2005
Ubicación: Cuba
Mensajes: 86
Antigüedad: 18 años, 8 meses
Puntos: 1
Pregunta AngularJS - ng-bind no funciona en textarea con plugin

Hola, colegas.

Tengo un textarea de un formulario que quiero enlazar con una variable de mi scope en angular.

La directiva ng-bind funciona bien con el textarea puro, pero cuando lo uso como un editor wysiwyg utilizando algún plugin jquery, deja de funcionar, me muestra el textarea vacío. Me pasa con summernote y con tinyEditor, no he probado otros editores.

¿Alguna sugerencia?
  #2 (permalink)  
Antiguo 31/03/2016, 00:04
 
Fecha de Ingreso: junio-2004
Mensajes: 621
Antigüedad: 19 años, 10 meses
Puntos: 25
Respuesta: AngularJS - ng-bind no funciona en textarea con plugin

Yo creo que todos esos editores funcionan creando un contenedor paralelo y mostrando el editor y ocultando el textarea. Si el ng-bind está puesto al textarea, y éste se destruye o reemplaza por el nuevo editor en tiempo de ejecución, se perderá el bindeo.

Huele a que por ahí viene el problema. Casi todos los editores despachan un evento cuando se han cargado, ¿no puedes aprovechar ese momento para realizar el bindeo programaticamente en lugar de hacerlo por directivas de angular en el textarea? Si no tendrás que hacerlo a la vieja usanza, controlando los eventos del editor y persistiendo los cambios en el modelo.

O usando un editor que sea un componente de angular:

Buscando, he encontrado un par de ejemplos rápidos:

- http://codepen.io/paulbhartzog/pen/Hpsjg
- https://github.com/angular-ui/ui-tinymce
__________________
eContento
- Mis artículos y tutoriales
- Mis jsfiddles
  #3 (permalink)  
Antiguo 31/03/2016, 01:15
 
Fecha de Ingreso: agosto-2004
Ubicación: In front of PC
Mensajes: 21
Antigüedad: 19 años, 8 meses
Puntos: 0
Respuesta: AngularJS - ng-bind no funciona en textarea con plugin

Una solución es crear una directiva que compile el código HTML dónde pones el textarea con el WYSIWYG.

De este modo y mediante:

Código Javascript:
Ver original
  1. $compile(html)(scope);

El código de angular reconocerá el HTML dónde está tu plugin JS.

Saludos
  #4 (permalink)  
Antiguo 31/03/2016, 06:54
Avatar de Kluster  
Fecha de Ingreso: agosto-2005
Ubicación: Cuba
Mensajes: 86
Antigüedad: 18 años, 8 meses
Puntos: 1
Respuesta: AngularJS - ng-bind no funciona en textarea con plugin

Al final utilicé angular-wysiwyg, y funciona bien sin muchos quebraderos de cabeza, ni tener que manipular el DOM, y con la misma directiva ng-model. Gracias.

Etiquetas: formulario, funcion, javascript, jquery, plugin, textarea
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:20.