mi controlador se carga varias veces en mi código AngularJS 1.5:
<div ng-repeat="conditionForMultipleRows"> <div data-ng-if="$first"> <div co-my-component></div> </div> </div> export function coMyComponent(): ng.IDirective { return { template: coMyComponentTemplateHtml, controller: 'MyComponentController', controllerAs:'$ctrl' } } export class MyComponentController{ state: MyStateClass; static $inject = [someServices] constructor(someServices) { document.getElementById("myComponent").addEventListener("myEvent", (ev: CustomEvent) => { doStuff() }La parte HTML solo se llama una vez, por lo que no debería haber ningún problema. Solo mi controlador se carga varias veces. angular.module solo carga el controlador una vez y la directiva solo una vez, por lo que no hay problema. Además, no hay otro lugar donde se llame al controlador o al componente web en el código.
No estoy muy familiarizado con AngularJS, por lo que también puede señalar otras partes si ve algo mal aquí. Consulte una fuente si se resolvió allí. no encontre ninguna respuesta util
gracias de antemano chicos
Cada vez que se crea una instancia de su directiva, recibirá un nuevo controlador.
La directiva ng-repeat instancia una plantilla una vez por elemento de una colección. En su caso, si conditionForMultipleRows es una matriz que tiene cuatro elementos dentro, instanciará cuatro veces la plantilla
<div data-ng-if="$first"> <div co-my-component></div> </div>Cada instancia de plantilla obtiene su propio alcance y su propio controlador, por lo que llama al constructor cuatro veces.