【发布时间】:2016-02-24 15:55:37
【问题描述】:
我想了解为什么我们使用 -1 检查索引数组值,如果 fileName 已经存在,我会遇到剑道上传 onSelect 的问题,阻止用户加载文件并显示 showErr。当我们处理一个文件时它可以工作,但是当我们选择多个文件并且如果一个文件已经加载它应该显示 showErr 但它没有发生。
main.html
<div class="row" >
<div class="form-group col-md-12 fieldHeight" ng-hide="errorUpDoc" >
<label for="attachment" class="col-md-4" ng-show="!editDocMode">File name:</label>
<div class="col-md-6" ng-show="!editDocMode">
<input name="file"
type="file"
kendo-upload="fileAttachment"
k-upload="addMorePostParameters"
k-success="onSuccess"
k-error = "onError"
k-multiple="true"
ng-disabled="disableDocFields"
k-options="fileAttachmentOptions"
k-select="onSelect"
k-remove="onUploadRemove"
/>
<p ng-show="showErr" class="text-danger">File name already exists</p>
</div>
</div>
</div>
main.js
$scope.onSelect = function (e) {
// var fileNames = $.map(e.files, function(file) { return file.name; }).join(', ');
var fileNames = assessmentData.map(function(assessment)
{ return assessment.fileName; });
e.files.forEach(function (file) {
if (fileNames.indexOf(file.name) !== -1 || selectedFile.indexOf(file.name) !== -1) {
e.preventDefault();
$timeout(function () {
$scope.showErr= true;
});
}
else {
$timeout(function () {
$scope.showErr = false;
});
}
});
for ( var i=0; i < e.files.length; i++){
if(selectedFile.indexOf(e.files[i].name) === -1){
selectedFile.push(e.files[i].name);
}
}
};
【问题讨论】:
-
indexOf如果在数组中未找到项,则返回 -1。 -
阅读docs 总是有用的。
-
我不明白否决投票
-
DV 按钮的工具提示说:“这个问题没有显示任何研究工作”,这说明了很多?
标签: javascript angularjs kendo-ui