所有这一切都是有角度的。
没有太多无聊的细节,我有一个图像上传按钮,但实际上并不上传图像。相反,“虚拟”表单元素只是将信息传递到另一个数组,该数组显示图像的小预览缩略图,并为用户提供删除任何他们不想上传的选项。
除了一个令人恼火的细节之外,所有这些都运行得相当流畅(就像图像上传一样流畅):
“虚拟”按钮始终显示上次“上传”的图像数量,即使用户可能已从实际记录数组中删除了这些图像。该按钮还可以多次使用,因此它可能会显示“2 个文件”,而实际上有 8 个文件。或 10。或 0。
我想在将其内容添加到记录数组后通过控制器清空该输入,但我不知道如何操作。
我试过了nulling
输出输入的模型,每所以答案 https://stackoverflow.com/questions/21708689/clear-text-input-on-click-with-angularjs那是:
vm.addImages=null;
没有运气。仍然是“2 个文件”。
我尝试再次通过一个表单对象本身进行翻查所以答案 https://stackoverflow.com/questions/14684877/angular-clear-form-input-after-submit但我不想清除整个表单,只是清除这一元素。
这是相关的$watch
从控制器:
$scope.$watch('vm.addImages', function() {
if(vm.addImages.length){
_.each(vm.addImages, function(image){
vm.building.images.push(image);
});
vm.addImages = null; //this is the issue.
}
});
有任何想法吗?
Thanks.
清除功能应定义如下
$scope.clear = function () {
angular.element("input[type='file']").val(null);
};
检查下面的代码片段。
var app = angular.module('myApp', []);
app.controller('myCtrl', ['$scope', function($scope){
$scope.uploadFile = function(){
var file = $scope.myFile;
console.log('file is ' );
console.dir(file);
var uploadUrl = "/fileUpload";
fileUpload.uploadFileToUrl(file, uploadUrl);
};
$scope.clear = function () {
angular.element("input[type='file']").val(null);
};
}]);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app = "myApp">
<div ng-controller = "myCtrl">
<input type = "file" ng-model = "myFile" file-select="file"/>
<button ng-click="clear()">clear</button>
</div>
</body>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)