【发布时间】:2016-03-13 18:02:40
【问题描述】:
我正在尝试使用 Angular 的 ng-file-select 指令将文件上传到云端。只有在提交包含上传字段的表单时,才应该调用上传图片的函数。代码如下:
<form class="form-horizontal" name="reviewEntry" role="form" ng-controller="reviewController" ng-submit="submitFeedback(reviewer.image)" novalidate>
...
<input type="file" id="image" name="image" ng-file-select="onFileSelect($files)" accept="image/*" ngf-max-size="5MB" ngf-model-invalid="errorFiles">
...
</form>
我的控制器代码:
$scope.submitFeedback = function(file) {
$scope.showSuccess = false;
$scope.message = "Loading ...";
var review = {
name: $scope.reviewer.name,
model: $scope.reviewer.model,
image: $scope.reviewer.image,
review: $scope.reviewer.review
};
$scope.onFileSelect = function(files) {
if (files && files.length) {
$scope.file = files[0];
}
alert("ON FILE SELECT");
Upload.upload({
url: '/images/upload',
method: 'POST',
file: $scope.file
}).success(function(data) {
console.log("SUCCESS: " + data);
}).error(function(err) {
console.log("ERROR: " + err.message);
});
...
};
但是,submitFeedback 内的onFileSelect 永远不会被调用(没有警告框)- 只有在按下提交按钮后才会上传。我对 Angular 比较陌生 - 谁能帮我解决这个问题?
【问题讨论】:
标签: javascript angularjs