我从服务器获取了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'"
答案 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>