1

Ich versuche $watch auf ein Attribut in der Post Link-Funktion anwenden.

Mein Code ist wie folgt:

compile: function(){ 
    return { 
     post:function(scope,element){ 
      scope.$watch('scope.x', function(){ 
       console.log(scope.x); 
      }) 
     } 
    } 
} 

Es nur einmal ausgeführt wird, wenn die Seite geladen wird. Ist etwas falsch, was ich nicht herausfinden kann?

Edit:

I Winkel gridster bin mit verschiedenen Diagrammen in einem Raster zu zeigen. Meine index.html wie folgt aussehen:

<div gridster> 
    <ul> 
     <chart ng-repeat="chart in charts"> 
     </chart> 
    </ul> 
</div> 

Chart ist eine weitere Richtlinie im Hinblick auf:

<li gridster-item row="grid_row" col="grid_col"> 

Skriptdatei enthält:

module.directive('chart', ['', 
    function() { 
     return { 
      restrict: 'E', 
      scope: { 
        grid_col: '=col', 
        grid_row: '=row', 
      }, 
      compile: function(element, attrs) { 
       return { 
        post: function(scope, element, timeout) { 
         scope.$watch('grid_col', function() { 
         console.log(scope.grid_col); 
         }) 
        } 
       } 
      } 
     }; 
    } 
]); 

Antwort

0

Sie nicht scope Namen in string vorgesehen erwähnen sollte zu $watch.

scope.$watch('x', function(){ 
    console.log(scope.x); 
}) 

$watch über Umfang wird im Inneren platzieren $$ Beobachter-Objekt innerhalb $scope & evaluats jede Saite Wert gegen Umfang auf jeder Schleife verdauen.

+0

Ich habe das versucht, aber ohne Erfolg funktioniert es zum ersten Mal, aber nichts wird in der Konsole danach gedruckt. – user3035998

+0

@ user3035998 könnten Sie mir einen Plunkr zur Verfügung stellen? –