2017-06-06 61 views
1

我想建立一個基於數組的無線電選擇器,並將該鍵而不是該值返回給服務器。我可以得到ng模型的鍵值而不是ng值的值嗎?

這裏是數組:

$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]"這將是一個容易得多...

回答

1

ng-repeat="(customer_key,customer_type) in customer_types"

您需要在ng-repeat分開鍵和值。

0

使用納克重複=「(鍵,CUSTOMER_TYPE)在customer_types」和變化單選按鈕爲:

<label style="margin-right:15px"><input type="radio" ng-model="ctype" ng-value="key" name="customer_type">{{customer_type}}</label> 
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>