【发布时间】:2016-10-22 02:54:54
【问题描述】:
编辑:以下示例没有做任何有用的工作。这只是为了说明我在img.onload 中设置模板变量的问题。实际的图像处理无关紧要。
所以我正在尝试按照this 答案中的建议将图像转换为base64,然后将其调整为在角度项目中使用。
我可以将图像编码为 base64,但我无法让该数据出现在模板中。
在我的控制器中,我有以下内容:
vm.showInTemplate = "cluck";
var img = new Image();
img.src = 'http://upload.wikimedia.org/wikipedia/commons/4/4a/Logo_2013_Google.png';
img.onload = function(){
// logic removed for simplicity
vm.showInTemplate= "moooo";
};
然后在视图中,我有(现在):
{{ vm.showInTemplate }}
我从 Chrome 控制台知道vm.showInTemplate 在img.onload() 中可用,并且我知道它被设置为"moooo",但在模板视图中,该值仍然是"cluck"
我做错了什么?
【问题讨论】:
-
由于 .onload 是异步的,我猜你需要调用一个角度方法来刷新模板。有时它是 $scope.$apply() for $scope.property。了解什么是“vm”会有所帮助。
-
是的。就是这个。谢谢!
标签: javascript angularjs angularjs-scope