Hola, tengo un controlador que tiene un parámetro llamado refresh y un reloj $
app.controller (..., []) { $scope.refresh = false; $scope.$watch('refresh', function() { if(!$scope.refresh) return; $scope.apiCall(true); }, true); } Tengo una directiva donde se usa refresh .
app.directive('dirA', () => { return { restricts: E, scope: { refresh: '=', ..... }, templateUrl: 'location of template', controller: [..., { function test() { $scope.refresh = false; // API call here fetch('/test', () => { this.refresh = true; )} } }] } })En la plantilla de mi controlador, estoy usando esta directiva dos veces como
<dirA refresh="refresh"/> <dirA refresh="refresh"/> El problema al que me enfrento es cuando se refresh los cambios desde la primera instancia de la directiva, se llama a $watch pero no sucede lo mismo desde la segunda instancia.
Soy bastante nuevo en angularjs, por favor ayuda si es posible
Cuando declara un controlador en una directiva, también debe vincular el alcance aislado de su directiva mediante bindToController .
Aquí hay un artículo que explica bindToController
También me tomé el tiempo para escribir un plunkr que demuestra con el código que proporcionó cómo probablemente debería verse esto.