2016-04-17 5 views
0

dies meine einfache Richtlinie:verhindern Umfang Uhr auf die Seite neu laden

app.directive('someButton',function(){ 
return { 
    restrict : 'E', 
    template : "<button>{{buttonText}}</button>", 
    link : function(scope,element,attr){ 
     scope.$watch('counter',function(oldVal,newVal){ 
      console.log("counter changed from ",oldVal ,"to " ,newVal); 

     }) 

    } 
} 

});

der Wert, der ein Zähler im Umfang geändert worden ist, die wie folgt initialisiert:

$ scope.counter = 0;

Ich habe auch Knopf, der beim Klicken Counter ++;

Wenn meine Seite neu geladen wird, sagt die Konsole, dass "von 0 auf 0 geändert wurde" .wie kann ich das verhindern?

Antwort

0

Sie können das nicht tun, weil Sie nicht Ihre $scope.counter sind persistierende und damit nach Seite aktualisieren Ihre $scope.counter in der Uhr Als Ergebnis auf 0 zurückgesetzt wird, werden Sie neuen und alten Wert sowohl als 0 erhalten, wenn Sie wollen persist können Sie local (oder session)

0

Vergleichen Sie die oldVal zum newVal, und wenn sie gleich sind, Rückkehr verwenden:

scope.$watch('counter',function(newVal, oldVal){ 
    if(newVal === oldVal) { 
     return; 
    } 

    console.log("counter changed from ",oldVal ,"to " ,newVal); 
}); 
Verwandte Themen