【发布时间】:2014-09-05 16:14:41
【问题描述】:
我正在尝试在 Angular 中构建一个计算日托价格的计算器。
公司特许经营中的每个地点每天都有单独的价格。所以我的想法是构建一个表单,首先是一个允许您选择位置的选择,然后是一系列日期的复选框。
我在从我的 json 文件中选择正确价格的复选框中遇到 ng-true-value 问题。
更新: 添加了 Plunkr:http://plnkr.co/edit/MDmrqaH1VzLBzjd5eHgT?p=preview
考虑这段代码:
<p class="kind_section">Choose location</p>
<select ng-model="formData.location" ng-options="location.title for location in data.bso"></select>
<p class="kind_section">Select days</p>
<input type="checkbox" ng-model="location.day.mon" ng-change="calculatePrice()" ng-true-value="{{data.bso[formData.location.ID].prices.monday}}" ng-false-value="0">Ma
<input type="checkbox" ng-model="location.day.tue" ng-change="calculatePrice()" ng-true-value="{{data.bso[formData.location.ID].prices.tuesday}}" ng-false-value="0">Di<br />
<input type="checkbox" ng-model="location.day.wed" ng-change="calculatePrice()" ng-true-value="{{data.bso[formData.location.ID].prices.wednesday}}" ng-false-value="0">Wo
<input type="checkbox" ng-model="location.day.thu" ng-change="calculatePrice()" ng-true-value="{{data.bso[formData.location.ID].prices.thursday}}" ng-false-value="0">Do<br />
<input type="checkbox" ng-model="location.day.fri" ng-change="calculatePrice()" ng-true-value="{{data.bso[formData.location.ID].prices.friday}}" ng-false-value="0">Vr
首先选择将 formData 设置为位置 ID,然后我想使用此 ID 选择匹配位置的日价格并将其设置为 ng-true-value。
我为此使用ng-true-value="{{data.bso[formData.location.ID].prices.monday}}"。这不起作用。
当我像 ng-true-value="{{data.bso[0].prices.monday}}" 这样手动设置 ID 时,它确实有效。为什么选择的结果没有被ng-true-value拾取?
这是我的 json 文件:
$scope.data = {
"bso": [
{
"ID": 0,
"title": "Locatie 1",
"prices": {
"monday": 130,
"tuesday": 130,
"wednesday": 200,
"thursday":130,
"friday": 130
}
},
{
"ID": 1,
"title": "Locatie 2",
"prices": {
"monday": 430,
"tuesday": 530,
"wednesday": 600,
"thursday":990,
"friday": 730
}
}
]
};
【问题讨论】:
-
您使用的是哪个版本的 Angular?上一个
ngTrueValue有变化。 -
我使用的是 v1.3.0 Beta.13
-
使用
ng-change查看模型是否正在更新。formData对象是否存在于您的范围内?ng-select使用子作用域。 -
它确实更新了.. 我要提供一个 Plunkr,等等
-
AFAIK,ng-true-value 只解析给定的表达式一次。在评估表达式时,
formData.location.ID肯定仍然是未定义的。
标签: javascript json angularjs checkbox