【发布时间】:2017-03-23 05:59:43
【问题描述】:
我有一个$scope 字段,用于<img>: 中的ng-src 属性
$scope.imageDataUrl
字段初始化如下:
$scope.myJsWrapper = new MyJsWrapper();
$scope.myJsWrapper.getImageUrl(function (imageDataUrl) {
$scope.imageDataUrl = imageDataUrl;
});
这里是外部JS函数:
function MyJsWrapper() {
this.getImageUrl = function (withImage) {
thirdPartyJsFile.getData().then(function (data) {
var imageDataUrl = thirdPartyJsFile.getDataUrl(data, "image/png");
if (withImage) {
withImage(imageDataUrl);
}
});
}
}
这是一种复杂的方式,但第三方应用程序迫使我这样做。
我遇到的问题是,不知何故,角度没有注意到字段imageDataUrl 的变化。所以图像没有更新。
我什至为该字段尝试了$scope.$watch,但它没有被触发。
有趣的是,当我在浏览器中滚动或单击任意位置(以及$scope.$watch)时,它会发生变化。
为什么 Angular 无法识别字段变化,我需要做什么才能让它起作用?
【问题讨论】:
-
更改图片来源后,您是否尝试拨打
$scope.$apply()?
标签: javascript angularjs