我想了解为什么我们检查索引数组值为-1,如果已经存在fileName,则我遇到kendo upload onSelect
的问题阻止用户加载文件并显示showErr
。当我们使用一个文件时,它可以正常工作,但是当我们选择多个文件时,如果已经加载了一个文件,它应该显示为err,但它不会发生。
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);
}
}
};
答案 0 :(得分:5)
当数组中不存在该元素时,indexOf
返回-1。
答案 1 :(得分:1)
索引 Parse.Cloud.beforeSave('posts', function (req, res) {
var uname = 'xxxxx';
var user = Parse.User.current();
user.fetch().then(function(fetchedUser){
uname = fetchedUser.getUsername();
},
);
if (uname != 'michael') {
res.error('This user is not allowed');
} else {
res.success();
}
});
表示该值在数组中没有索引。