unidades:09_directivas:04_ejemploseguro
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Próxima revisión | Revisión previa | ||
| unidades:09_directivas:04_ejemploseguro [2014/08/29 17:38] – creado admin | unidades:09_directivas:04_ejemploseguro [2014/09/07 09:45] (actual) – admin | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| ====== 9.4 Ejemplo de directiva ====== | ====== 9.4 Ejemplo de directiva ====== | ||
| + | En este tema retornamos el ejemplo del seguro médico para añadir una directiva. La directiva consiste en usar el widget de [[http:// | ||
| + | Para que funciona el Datepicker es necesario añadir lo siguiente a la página '' | ||
| + | * CSS de JQuery UI | ||
| + | * JavaScript de JQuery | ||
| + | * JavaScript de JQuery UI | ||
| + | |||
| + | <sxh html> | ||
| + | <link rel=" | ||
| + | <script src="// | ||
| + | <script src="// | ||
| + | </ | ||
| + | |||
| + | |||
| + | La directiva se llamara " | ||
| + | |||
| + | Por lo tanto la directiva se usará de la siguiente manera: | ||
| + | <sxh html; | ||
| + | < | ||
| + | id=" | ||
| + | name=" | ||
| + | type=" | ||
| + | ng-model=" | ||
| + | ca-datepicker=" | ||
| + | /> | ||
| + | </ | ||
| + | * Línea 6: Usamos la directiva y especificamos que el datepicker use el formato de " | ||
| + | |||
| + | Veamos ahora como es la definición de la directiva: | ||
| + | <sxh js; | ||
| + | app.directive(' | ||
| + | return { | ||
| + | restrict: ' | ||
| + | link: function($scope, | ||
| + | | ||
| + | element.datepicker({ | ||
| + | dateFormat: attributes.caDatepicker | ||
| + | }); | ||
| + | } | ||
| + | }; | ||
| + | }]); | ||
| + | </ | ||
| + | * Línea 3: Decimos que solo se puede usar como Atributo HTML | ||
| + | * Línea 6: En la función de link llamamos a la función de JQuery UI para que transforme el ''< | ||
| + | * Línea 7: Al objeto de configuración del método '' | ||
| + | |||
| + | Si usáramos la directiva veríamos que aparentemente funciona pero si añadiéramos el siguiente código HTML a la página: | ||
| + | |||
| + | <sxh html> | ||
| + | {{seguro.fechaCreacion}} | ||
| + | </ | ||
| + | |||
| + | comprobaríamos que al cambiar la fecha con el ratón pinchando en el datepick no se cambia el texto de la expresión '' | ||
| + | |||
| + | **¿Que ha pasado?** | ||
| + | |||
| + | Que AngularJS no se ha enterado que le han cambiado el dato dentro de ''< | ||
| + | |||
| + | La solución a esto la tenemos en el propio datepicker que provee de un evento que se activa cuando él cambia la fecha. Este evento se llama [[http:// | ||
| + | |||
| + | Para poder usar el evento [[http:// | ||
| + | |||
| + | La directiva ahora queda de la siguiente forma: | ||
| + | <sxh js; | ||
| + | app.directive(' | ||
| + | return { | ||
| + | restrict: ' | ||
| + | link: function($scope, | ||
| + | | ||
| + | element.datepicker({ | ||
| + | dateFormat: attributes.caDatepicker, | ||
| + | onSelect: function() { | ||
| + | $(this).trigger(' | ||
| + | } | ||
| + | }); | ||
| + | } | ||
| + | }; | ||
| + | }]); | ||
| + | </ | ||
| + | * Linea 8: Añadimos la función de // | ||
| + | * Línea 9: Lanzamos un evento de '' | ||
| + | |||
| + | <note important> | ||
| + | La directiva realmente está sin acabar ya que también debería de transformar el dato de tipo String del ''< | ||
| + | Eso ya lo veremos en la unidad [[unidades: | ||
| + | </ | ||
| + | ===== Ejemplo ===== | ||
| + | |||
| + | {{url> | ||
| + | |||
| + | ===== Referencias ===== | ||
| + | * [[http:// | ||
unidades/09_directivas/04_ejemploseguro.1409326692.txt.gz · Última modificación: por admin
