2016-05-22 20 views
0

我试图使用ng-disabled来禁用按钮,但失败。下面是HTML部分:ng-disable与编号失败

<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转换为布尔值时为假。任何人都可以解释吗?非常感谢。

回答

1

我不知道为什么这么多混淆关于一个简单的事情。首先按照您的问题按钮超出范围ng-repeat。所以我认为它是包括在ng重复。

<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"); 
} 
0

您正在关闭按钮之前的重复表格行,因此您的“eachdata”变量不可用于按钮范围。将按钮包含在td内或tr范围内的其他位置。

+0

您好我已经把按钮内,但仍然没有工作。 ​​{{eachdata.paid}}​​

+0

你能做一个小提琴吗? – Phix

0

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