2016-04-11 5 views
0

Ich bin meine eigene Richtlinie Codierung, die ein Wörterbuch ist:

<div ng-controller="formController"> <dictionary label="Editable" model="bso.dictionnaryObject" required=true dictionary-object="dico"> </dictionary> </div>

Der „Dico“ Wert aus einem GET-Aufruf in einem Regler so eingestellt, dass es Mittel ist es ist nicht wie die Zeit initialisieren die Richtlinien initialisieren werden

Also ich auf meiner Anweisung

angular.module('dictionary', []).directive('myCustomer', function() { 
return { 
templateUrl: "dictionary.html", 
    restrict: = "E", 
    require: "^form", 
    scope : { 
     model: "=", 
     dictionaryObject: "=", 
     label: "@", 
     editable: "@", 
    }, 
    link : function() { 
     $scope.$watch("dictionaryObject", function(newVal, oldVal){ 
       console.log(oldVal); 
       console.log(newVal); 
      }, true); 
}};}); 

und von dem rootScope eine Uhr stellen:

Also das Hinzufügen der $ Scope. $ Digest ist die einzige Möglichkeit, die ich gefunden habe, um meine Uhr zu triggern. Gibt es eine Möglichkeit, $ scope.digest() nicht aufzurufen und meine Uhr auszulösen?

dank

+0

Sie manuell 'sollte $ apply' Ihre' $ scope' Änderungen, während Sie Winkel Dienste nicht wie '$ http', wo bereits zu tun es. –

+0

Wenn Sie jQuery oder ein anderes Javascript verwenden, müssen Sie die Änderungen manuell \ digest \ übernehmen, da eckig die Code-Spur außerhalb des Winkelzyklus verliert. – Dreamweaver

Antwort

3

Das funktioniert nicht, weil $.get() tun kennt den Digest Zyklus ausführen, nicht das sollte. Sie sollten die Winkel Art und Weise für diesen Einsatz:

$http.get("http://framework:8787/Services/ofo/rest/dictionary/OrganisationStatusAvailabilityCode", 
     function (data) { 
      $scope.dico = data; 
      //$scope.$digest(); If you use $http, the digest it's implicit 
     });} 
+0

Vielen Dank für das Lehren und die wirklich schnelle Antwort! – Kalimero95

+0

Gern geschehen;) –

Verwandte Themen