angularjs - switch - Angular-Directivas de decoración
ng switch angular 6 (2)
Este artículo muestra cómo puede, de hecho, usar decorator () con directivas.
Solo debe incluir "Directiva" como el sufijo del nombre. Por lo tanto, en mi ejemplo, debería haber estado haciendo
return $provide.decorator(''myDirectiveDirective'', [''$delegate'', ''$log'', function($delegate, $log) {
// TODO - It worked! Do something to modify the behavior
$log.info("In decorator");
// Article uses index 0 but I found that index 0 was "window" and index 1 was the directive
var directive = $delegate[1];
}
http://angular-tips.com/blog/2013/09/experiment-decorating-directives/
Estoy tratando de usar la capacidad de "decorador" de Angular para agregar funcionalidad a algunas directivas. Supongamos que el nombre de mi directiva es myDirective. Mi código se ve así:
angular.module(''app'').config([
''$provide'', function($provide) {
return $provide.decorator(''myDirective'', [
''$delegate'', ''$log'', function($delegate, $log) {
// TODO - It worked! Do something to modify the behavior
$log.info("In decorator");
}
]);
}
]);
Sigo recibiendo este mensaje:
Uncaught Error: [$injector:unpr] Unknown provider: myDirectiveProvider from app
Según mi mejor criterio, las directivas ya están registradas cuando se ejecuta la función de decorador. ¡Cualquier idea sería apreciada!
Los decoradores creados con el método de decorator
son solo para servicios .Deben crearse con Vea los documentos aquí . service
, factory
, provider
o value
.
Si desea decorar una directiva, puede hacer otra directiva con el mismo nombre. Ambas directivas se usarán cuando se compile el DOM, y puede definir el orden de compilación utilizando la prioridad .
Alternativamente, si puede modificar el código que usa la directiva que intenta decorar, puede simplemente crear una nueva directiva que use el original en su plantilla.