ng-disabled不使用引导按钮

时间:2015-05-30 01:51:18

标签: javascript ajax angularjs twitter-bootstrap

我正在使用bootstrap.js以及角度js,我的代码正在跟随 -

//few lines from controller
$scope.isWaiting = true;
$scope.promise = $http.get("voluumHandler.php?q=campaigns&filter=traffic-source&filterVal=" + traffic + "&from=" + from + "&to=" + to + "&tz=" + tz).success(function(response){        
        $scope.campaigns = response.rows;
        console.log(response.rows);
        $scope.isWaiting = false;
    }).error(function(response){
        alert(response);
        $scope.isWaiting = false;
    });

此处isWaiting用于禁用和启用按钮。

<!--HTML -->
<div class="col-md-3">
        <button class="btn btn-warning" ng-disabled="{{isWaiting}}">Report</button>
    </div>

在ajax加载完成之前生成的输出HTML

<button class="btn btn-warning" ng-disabled="true" disabled="disabled">Report</button>

在ajax加载完成后

<button class="btn btn-warning" ng-disabled="false" disabled="disabled">Report</button>

按钮仍处于禁用状态。我不知道为什么会发生这种情况,我在这里看到了几个问题的回答。

提前致谢。

2 个答案:

答案 0 :(得分:10)

如果您使用ng-disabled,则必须使用返回truthy值的表达式。表达式的示例是isWaiting{{isWaiting}}将改为输出表达式。因此,请使用ng-disabled="isWaiting"

<button class="btn btn-warning" ng-disabled="isWaiting">Report</button>

ngDisabled documentation

Expressions documentation

答案 1 :(得分:7)

您需要将表达式提供给ng-disabled,而不是提供一个字符串(“true”/“false”),该字符串始终为 truthy ,按钮始终处于禁用状态。

isWaiting - &gt;表达

{{isWaiting}} - &gt;表达的价值

在你的情况下:

ng-disabled="isWaiting"