下载按钮未响应 angularjs 中的 ng-disabled
Download button not responding to ng-disabled in angularjs
我有一个网页,点击它会显示 folder/directory 的内容。如果文件夹的内容有文件,则下载按钮被激活。如果文件夹的内容是一个目录,下载按钮是无效的。
这是我的代码,应该可以完成这项工作。但是“下载”按钮始终保持活动状态并且永远不会处于非活动状态。有人可以指出我哪里出错了吗?
$scope.IsFile = function(filenames){
forEach(filenames, function(filename){
if(filename.indexOf(".zip") > 1|| filename.indexOf(".txt") >1 || filename.indexOf(".xml") > 1 ) {
return true;
}
else {
return false;
}
});
};
<div class="col-md-3" id="CTP Jobs">
<div ng-click="GetListOfFilesonCTP('/home/topas/rda_app/JOBS/')">
<a href="">
<h3>
JOBS <small> <span class="btn-group"
role="group">
<button type="button" class="btn btn-default" ng-disabled="IsFile(listOfFilesOnJobs)"
ng-click="download()">Download</button>
</span>
</small>
</h3>
</a>
</div>
<table class="table table-striped"
ng-init="GetListOfFilesonCTP('/home/topas/rda_app/JOBS')">
<tr ng-repeat="jobs in listOfFilesOnJobs"
ng-click="GetListOfFilesonCTP(getPath('/home/topas/rda_app/JOBS/', jobs))">
<!--'/home/topas/rda_app/JOBS/'+ jobs + '/' -->
<td><a href="">{{jobs}}</a></td>
</tr>
</table>
</div>
您的 IsFile
函数没有 return 任何明确的内容(即它 returns undefined
)并且 ng-disabled
将其解释为 false
.第 4 行和第 7 行的 return true
和 return false
是相对于传递给 forEach
的函数而言的,这可能不是您想要的。您是要过滤文件列表并检查是否还有剩余文件吗?这样的事情会做:
$scope.isFile = function(filenames) {
return filenames.filter(function(filename) {
return filename.indexOf(".zip") > 1 ||
filename.indexOf(".txt") > 1 ||
filename.indexOf(".xml") > 1
}).length > 0
}
我有一个网页,点击它会显示 folder/directory 的内容。如果文件夹的内容有文件,则下载按钮被激活。如果文件夹的内容是一个目录,下载按钮是无效的。
这是我的代码,应该可以完成这项工作。但是“下载”按钮始终保持活动状态并且永远不会处于非活动状态。有人可以指出我哪里出错了吗?
$scope.IsFile = function(filenames){
forEach(filenames, function(filename){
if(filename.indexOf(".zip") > 1|| filename.indexOf(".txt") >1 || filename.indexOf(".xml") > 1 ) {
return true;
}
else {
return false;
}
});
};
<div class="col-md-3" id="CTP Jobs">
<div ng-click="GetListOfFilesonCTP('/home/topas/rda_app/JOBS/')">
<a href="">
<h3>
JOBS <small> <span class="btn-group"
role="group">
<button type="button" class="btn btn-default" ng-disabled="IsFile(listOfFilesOnJobs)"
ng-click="download()">Download</button>
</span>
</small>
</h3>
</a>
</div>
<table class="table table-striped"
ng-init="GetListOfFilesonCTP('/home/topas/rda_app/JOBS')">
<tr ng-repeat="jobs in listOfFilesOnJobs"
ng-click="GetListOfFilesonCTP(getPath('/home/topas/rda_app/JOBS/', jobs))">
<!--'/home/topas/rda_app/JOBS/'+ jobs + '/' -->
<td><a href="">{{jobs}}</a></td>
</tr>
</table>
</div>
您的 IsFile
函数没有 return 任何明确的内容(即它 returns undefined
)并且 ng-disabled
将其解释为 false
.第 4 行和第 7 行的 return true
和 return false
是相对于传递给 forEach
的函数而言的,这可能不是您想要的。您是要过滤文件列表并检查是否还有剩余文件吗?这样的事情会做:
$scope.isFile = function(filenames) {
return filenames.filter(function(filename) {
return filename.indexOf(".zip") > 1 ||
filename.indexOf(".txt") > 1 ||
filename.indexOf(".xml") > 1
}).length > 0
}