Javascript 角度预览图像-无法设置属性';照片';未定义的
正在处理预览图像代码,但由于某些问题无法对其进行排序 视图: 控制器:Javascript 角度预览图像-无法设置属性';照片';未定义的,javascript,html,angularjs,Javascript,Html,Angularjs,正在处理预览图像代码,但由于某些问题无法对其进行排序 视图: 控制器: var vm = this; $scope.uploadFile = function() { dietImage = event.target.files[0]; var reader = new FileReader(); reader.onload = function(event) { vm.photo = event.ta
var vm = this;
$scope.uploadFile = function() {
dietImage = event.target.files[0];
var reader = new FileReader();
reader.onload = function(event) {
vm.photo = event.target.result
$scope.$apply()
}
reader.readAsDataURL(event.target.files[0]);
};
错误消息:“Uncaught TypeError:无法在FileReader.reader.onload上设置undefined的属性'photo'”我认为您的问题可能是ControllerAs语法。因为我不知道如何将控制器的vm绑定到HTML 尝试以下方法:
<div ng-controller="MyController as vm">
<img ng-src="{[vm.photo]}"/>
<input type="file" on-add-image="uploadFile"/>
</div>
或者最好在路由文件(app.config)中输入您的
controllerAs:'vm'
不,我们已经按原样进行了设置,因此这不是一个问题。它添加在路由控制器中:“myControllerCtrl”,controllerAs:'vm'您是否也输入了指令$apply(function(){element.bind('change',onImgChange);})
var vm = this;
$scope.uploadFile = function() {
dietImage = event.target.files[0];
var reader = new FileReader();
reader.onload = function(event) {
vm.photo = event.target.result
$scope.$apply()
}
reader.readAsDataURL(event.target.files[0]);
};
<div ng-controller="MyController as vm">
<img ng-src="{[vm.photo]}"/>
<input type="file" on-add-image="uploadFile"/>
</div>