ng-disable与数字失败

时间:2016-05-22 02:44:25

标签: angularjs

我尝试使用ng-disabled禁用按钮但失败了。这是HTML部分:

<tr ng-repeat="eachdata in tabledb">
    <td>{{eachdata.paid}}</td>
</tr>

<button class="btn btn-primary" ng-click="process(eachdata)" 
        ng-disabled="eachdata.paid">

console.log显示eachdata.paid:“0”或“1”。我希望在付款时禁用按钮:“1”。

所以我也试过

<button class="btn btn-primary" ng-click="process(eachdata)" 
        ng-disabled="Boolean(Number('1'))">

但仍无效。

我在Javascript中检查了转换类型的引用。将数字1转换为布尔值时假定为真,将数字0转换为布尔值时假定为假。有谁能解释一下?非常感谢。

3 个答案:

答案 0 :(得分:1)

我不知道为什么对于一个简单的事情有如此多的困惑。首先,根据你的问题按钮超出了ng-repeat的范围。所以我认为它包含在ng-repeat中。

<tr ng-repeat="eachdata in tabledb">
    <td>{{eachdata.paid}}</td>
    <td><button class="btn btn-primary" ng-click="process(eachdata)" 
        ng-disabled="checkIfDisabled(eachdata.paid)"></td>
</tr>

在控制器中定义checkIfDisabled功能

$scope.checkIfDisabled=function(paid){
  return (paid == "1");
}

答案 1 :(得分:0)

您正在关闭按钮之前的重复表格行,因此您的&#34;每个数据&#34;变量不适用于按钮范围。在td中包含按钮,或在tr范围内的其他位置。

答案 2 :(得分:0)

您的按钮超出了ng-repeat的范围。如果你想要你的桌子外面的按钮,你可以使用dummyTag并在其中运行ng-repeat。