我正在尝试根据数组设置一个无线电选择器,并将密钥而不是值返回给服务器。
这是数组:
$scope.customer_types = ['a', 'b', 'c', 'd', 'other'];
这是无线电选择器:
<label style="margin-right:15px"><input type="radio" ng-model="ctype" ng-value="customer_type" name="customer_type">{{customer_type}}</label>
现在$ scope.ctype将存储所选的客户类型并返回一个数字,例如,如果我选择other
,它应该向服务器发送4
。我可以为此做一个反向过滤器,但在我看来,如果我可以使用类似ng-value="customer_type[key]"
的东西,那将会更容易......
答案 0 :(得分:1)
ng-repeat="(customer_key,customer_type) in customer_types"
您需要在ng-repeat
中分隔键和值。
答案 1 :(得分:1)
由于您希望密钥成为数组中元素的位置,因此您可以使用$index
来获取所选的客户类型。
function MyCtrl($scope) {
$scope.customer_types = ['a', 'b', 'c', 'd', 'other'];
$scope.selectedType = function(index) {
$scope.ctype = index;
}
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app ng-controller="MyCtrl">
<div ng-repeat="customer_type in customer_types">
<label style="margin-right:15px">
<input type="radio" ng-value="$index" name="customer_type" ng-model="ctype" ng-click="selectedType($index)">{{customer_type}}</label>
</div>
Selected Customer type : {{ctype}}
</body>
答案 2 :(得分:0)
在customer_types中使用ng-repeat =“(key,customer_type)”并将单选按钮更改为:
<label style="margin-right:15px"><input type="radio" ng-model="ctype" ng-value="key" name="customer_type">{{customer_type}}</label>