显示Angularjs中JSON输入的选定单选按钮

时间:2014-02-04 11:16:25

标签: javascript html json angularjs

我希望根据输入的json值选择单选按钮。

我的json是

       "inventoryType": {
                        "bulk": [
                            {
                                "totalUnits": 80,
                                "addedOn": "12-01-2013"
                            }
                        ]
                    }

        "inventoryType": {
                        "day": [
                            {
                                "from": "12-Jan-2013",
                                "to": "12-Jan-2014",
                                "unitsPerDay": "30"
                            },
                            {
                                "from": "13-Jan-2014",
                                "to": "12-Jan-2015",
                                "unitsPerDay": "20"
                            }
                        ]
                    },

这是库存类型的2个不同数据“批量”和“日期”。

如果我获得批量数据,我希望选择批量单选按钮,反之亦然。

Html代码

<label class="span1">                                     
<input type="radio" name="optionsRadios" id="optionsRadios1" ng-value="{{productServiceInventory}}" ng-model="bulk" >
<small>Bulk</small>
</label>
<label class="span1">
<input type="radio" name="optionsRadios" id="optionsRadios2" ng-value="{{productServiceInventory}}" ng-model="day" >
<small>Day</small>
</label>

此处{{productServiceInventory}}的值在控制器中传递

if($scope.productServiceData.inventoryType.day === undefined){
console.log("bulk");
$scope.productServiceInventory = "bulk";
}
else if($scope.productServiceData.inventoryType.bulk === undefined){
console.log("day");
$scope.productServiceInventory = "day";
}

但我的单选按钮没有被选中到适当的数据..

请帮助我选择json fetch上的单选按钮。

提前致谢..

1 个答案:

答案 0 :(得分:0)

在HTML中,当您使用ng-model="bulk"时,您指的是整个数组,而控制器中的$scope.productServiceInventory = "bulk"是一个字符串。如果两个值相等,则会选择单选按钮。

<label class="span1">                                     
<input type="radio" name="optionsRadios" id="optionsRadios1" ng-model="productServiceInventory" value="bulk" >
<small>Bulk</small>
</label>
<label class="span1">
<input type="radio" name="optionsRadios" id="optionsRadios2" ng-model="productServiceInventory" value="day" >
<small>Day</small>
</label>

还有其他方法可以达到同样的效果,但这样,您可以按原样使用控制器。