在我的partials angularjs上做一个switch语句
我有一个问题,我无法让我的ng开关工作在我的部分。我想做的是上传一张图片,但在上传之前,我必须先检查图片大小是否达到25kb 这是我的控制器代码:在我的partials angularjs上做一个switch语句,angularjs,ng-switch,Angularjs,Ng Switch,我有一个问题,我无法让我的ng开关工作在我的部分。我想做的是上传一张图片,但在上传之前,我必须先检查图片大小是否达到25kb 这是我的控制器代码: $scope.validateAvatar = function(files) { var fd = new FormData(); $scope.filesize = files[0].size; $scope.filemaxsize = 25; //Take the first selected file fd.appen
$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;
而不是onchange
您应该使用ng change=“validateAvatar(this.files)”
在你的代码中,函数也是嵌套的。当我从onchange更改为ng时,将uploadAvatar
移出validateAvatar
@Codezilla,当我从onchange更改为ng时,change给了我一个eror。错误:没有控制器:ngModel哦,好了,现在可以工作了。这是我第一次使用$apply。angularjs中的文档读起来很可怕。@@@同样通过制作$scope.filemaxsize=25*1024那么我的部分表达式就是filesize@WonderingCoder:是的。这很奇怪,当我刷新页面只是为了测试时,它就起作用了。但最初我的应用程序是这样流动的,当登录->配置文件时,从我上传头像的配置文件页面。我必须单击两次选择文件按钮,上传按钮才能启动出现。为什么是这样?@WonderingCoder:这里只定义了$scope.filemaxsize
吗?我想这应该是顶级的。也许你可以插入$scope.$apply()
介于$scope.filesize
和$scope.filesize
之间?哦,是的!现在可以了。哇,谢谢很多人!顺便说一下,这不是主题。因为我正在建立一个SPA网站,页面之间不允许刷新,对吗?但是如果用户刷新页面,你怎么处理?你明白我的意思了吗?