我遇到了一个问题,我无法让ng开关处理我的部分。我想做的是上传一张图片,但在上传之前,我必须首先检查包含的图片大小是否没有达到25kb。
这是我的控制器代码:
$scope.validateAvatar = function(files) {
var fd = new FormData();
$scope.filesize = files[0].size;
$scope.filemaxsize = 25;
//Take the first selected file
fd.append("file", files[0]);
$scope.uploadAvatar = function() {
Api.uploadAvatar($scope.main.user.email, fd)
.then(function(result) {
console.log(result.data);
}, function(result) {
console.log(result);
})
};
};
和我的部分代码:
<form data-ng-submit="uploadAvatar()">
<input type="file" name="file" onchange="angular.element(this).scope().validateAvatar(this.files)"/>
<div ng-switch on="filesize / 1024 < filemaxsize">
<div ng-switch-when="true">
<input type="submit" value="Upload Avatar">
</div>
<div ng-switch-default>
Please choose you avatar.
</div>
</div>
</form>
此外,在检查图像文件大小时,你认为我的验证是否足够,比如说,如果包含的图像大小为20MB,我的验证还会捕获它吗?首先很抱歉,我没能让它先用switch语句。:(
手动更改$scope.filesize
后,需要调用$scope.$apply()
。
顺便说一句,为什么不让$scope.filemaxsize = 25 * 1024;