【问题标题】:Download button not responding to ng-disabled in angularjs下载按钮不响应angularjs中的ng-disabled
【发布时间】:2016-04-20 22:07:03
【问题描述】:

我有一个网页,点击后会显示文件夹/目录的内容。如果文件夹的内容有文件,则激活下载按钮。如果文件夹内容为目录,则下载按钮无效。

这是我的代码,应该可以实现这一点。但是“下载”按钮始终保持活动状态,并且永远不会处于非活动状态。有人能指出我哪里出错了吗?

$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>

【问题讨论】:

    标签: angularjs angularjs-scope angular-ngmodel angularjs-ng-disabled


    【解决方案1】:

    您的IsFile 函数没有显式返回任何内容(即它返回undefined)并且ng-disabled 将其解释为false。第 4 行和第 7 行的 return truereturn 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
    }
    

    【讨论】:

    • 我想检查文件夹的内容,即该文件夹中的内容数组/列表,如果有任何以.zip、.xml或.txt结尾的文件,我想返回true .. 如果不是,则返回 false。我试过你的代码,但它似乎不适用于我的情况..
    • “似乎没有用”是什么意思?按钮未处于您想要的状态?能举个例子吗?
    • 我是 angularjs 的新手。我不知道过滤器的使用。我的意思是说按钮根本没有被禁用。始终保持启用状态..
    • 请注意,我在这里没有使用 Angular.js 过滤器,只有原版 JS Array.prototype.filter 函数。这是解决方案的一个示例:jsfiddle.net/7jj0fcs6.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    • 1970-01-01
    相关资源
    最近更新 更多