Mein Code arbeitete in Angular 1.2, aber funktioniert nicht in 1.3 und ich kann nicht herausfinden, was sich in Winkel geändert und was ich in meinem Code ändern sollte, um es zu beheben.Was hat sich in eckigen 1.3 geändert, die meinen Code zerstört haben?
Ich habe eine plunkr example eingerichtet.
Der Code in HTML ist einfach
{{ 'guy' | change }}
Der Javascript-Code ist:
angular.module('app').service('MyService', function($timeout){
var data = null;
$timeout(function(){
data = 'this is data';
},2000);
this.transform = function(){
return data;
}
});
angular.module('app').filter('change', function(MyService){
return function(input){
return MyService.transform();
}
});
Die Idee, dass das Ergebnis auf einem Asynchron-Antwort hängt des Filters ist.
In Angular 1.2 wurde die Ansicht entsprechend aktualisiert. In Angular 1.3 ist dies nicht der Fall.
Um zwischen eckigen 1.2 und eckigen 1.3 zu wechseln - müssen Sie die Route zu eckigen am oberen Rand der HTML-Datei ändern. zwischen
<script data-require="[email protected]" data-semver="1.3.0" src="//code.angularjs.org/1.3.0/angular.js"></script>
und diesem
<script data-require="[email protected]" data-semver="1.2.0" src="//code.angularjs.org/1.2.0/angular.js"></script>
Ich habe auch versucht 1.3.1 - gleiches Problem.
Dies ist eine Vermutung, aber die '$ watch' könnte zuvor auf den gesamten Ausdruck ''guy' | gewesen sein ändern und jetzt aus Effizienzgründen nur auf "guy", was sich offensichtlich nicht ändert. Warum benutzen Sie einen Filter dafür? Kannst du nicht einfach '{{asyncData || 'guy'}} 'und dann stecken Sie Ihren Controller' $ timeout (function() {$ scope.asyncData = 'newdata';}, 2000); ' – jdotjdot