angularjs根据条件设置输入框的值

时间:2015-04-24 09:34:20

标签: angularjs

我从服务器获取了JSON数据。

$scope.denominations = [
    {
        "code": "190",
        "description": "One Coin",
        "count": null,
        "multiplier": 1
    },
    {
        "code": "170",
        "description": "Five Coin",
        "count": null,
        "multiplier": 5
    },
    {
        "code": "150",
        "description": "Strapped 2",
        "count": null,
        "multiplier": 200
    }
]

视图

<table class="custom-table table-bordered table">
    <tr>
     <th>Denomination</th>       
     <th class="text-center">Amount</th>
    </tr>
    <tr data-ng-repeat="denom in denominations">
     <td class="centerText"><input type="text" class="form-control" name="denomCount" data-ng-model="denom.count" readonly></td>
     <td class="centerText"><input type="text" class="form-control" name="denomamount{{$index}}" data-ng-model="(denom.count != 'null') ? (denom.count * denom.multiplier) : '0.00'"></td>
</tr>
</table>

根据条件,我需要设置输入文本框的值。 条件是我在模型中添加的,但它给出的错误是:非分配模型值

data-ng-model = "if (denom.count != 'null') ? (denom.count * denom.multiplier) : '0.00'"

2 个答案:

答案 0 :(得分:1)

ng-model可以分配一个变量,但不是表达式,因为它是双向绑定。相反,您可以将表达式赋予JS相对范围(可能是您的控制器)中的变量,然后将该变量赋值给ng-model。

另外我看到你的ng-model的值取决于一个计数,所以你可以添加一个$ watch,以保持你的变量与ng-model的关联更新。

答案 1 :(得分:1)

您可以使用ng-if条件

来完成此操作

<强> HTML

<table class="custom-table table-bordered table">
<tr>
 <th>Denomination</th>       
 <th class="text-center">Amount</th>
</tr>
<tr data-ng-repeat="denom in denominations">
 <td class="centerText"><input type="text" class="form-control" name="denomCount" data-ng-model="denom.count" readonly></td>
 <td class="centerText" data-ng-if="denom.count != 'null'"><input type="text" class="form-control" name="denomamount{{$index}}"  >{{denom.count * denom.multiplier}}</td>
 <td class="centerText" data-ng-if="denom.count == 'null'"><input type="text" class="form-control" name="denomamount{{$index}}"  >00.0</td>

</tr>
</table>