Ich habe ein $scope
Feld, das ich für ein ng-src
Attribut in einem <img>:
AngularJS Umfang nicht bemerkt Änderung
$scope.imageDataUrl
Das Feld wie folgt initialisiert:
$scope.myJsWrapper = new MyJsWrapper();
$scope.myJsWrapper.getImageUrl(function (imageDataUrl) {
$scope.imageDataUrl = imageDataUrl;
});
hier die externe JS-Funktion :
function MyJsWrapper() {
this.getImageUrl = function (withImage) {
thirdPartyJsFile.getData().then(function (data) {
var imageDataUrl = thirdPartyJsFile.getDataUrl(data, "image/png");
if (withImage) {
withImage(imageDataUrl);
}
});
}
}
Es ist ein komplizierter Weg, aber die thi Rd Party App zwingt mich, es so zu machen. Das Problem, das ich habe, ist, dass eckig nicht die Änderung des Feldes imageDataUrl
bemerkt. Das Bild wird also nicht aktualisiert. Ich versuchte sogar $scope.$watch
für dieses Feld, aber es wurde nicht ausgelöst. Lustig genug es ändert sich, wenn ich im Browser blättern oder irgendwo klicken (auch die $scope.$watch
).
Warum erkennt eckig den Feldwechsel nicht und was muss ich tun, damit es funktioniert?
Haben Sie versucht, '$ scope. $ Apply()' nach dem Ändern der Bildquelle aufzurufen? –