Сделав заявление о переключении на мои частичные angularjs
У меня проблема, я не могу заставить свой ng-switch работать над моими частями. Я пытаюсь загрузить изображение, но перед тем, как загрузить его, я должен сначала проверить, не достигает ли размер включенного изображения 25 КБ.
Вот мой код контроллера:
$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>
Кроме того, считаете ли вы, что моей проверки достаточно при проверке размера файла изображения, скажите, что, если включенное изображение имеет размер:20 МБ, моя проверка все равно его поймает? Извините, во-первых, я не смог заставить его работать сначала.:(
1 ответ
Решение
Вам нужно позвонить $scope.$apply()
после того как ты изменился $scope.filesize
вручную.
Кстати, почему бы просто не позволить $scope.filemaxsize = 25 * 1024;