2014-12-18 80 views
0

如何使用兩個數組創建一個下拉列表,其中一個用於值,另一個用於文本?使用兩個陣列選擇菜單

var values = [10, 25, 50, 100]; 
    var text = ['ten', 'twenty-five', 'fifty', 'hundred']; 

所以我會再得到以下選擇:

<select> 
    <option value="10">ten</option> 
    <option value="25">twenty-five</option> 
    <option value="50">fifty</option> 
    <option value="100">hundred</option> 
</select> 
+0

只是爲了確保,你說你怎麼能做到這一點編程採用了棱角分明? – ryanyuyu 2014-12-18 22:52:28

+0

是的,理想情況下是加價。我假設,我需要'ng-repeat'或'ng-options'。 – 2014-12-18 22:53:42

+0

所以你根本不能修改控制器代碼? – GregL 2014-12-18 23:02:15

回答

4

你可以做一些什麼樣的這一點,但多數民衆贊成你的相當不相干的邏輯

<select> 
    <option ng-repeat="t in text" value="{{values[$index]}}">{{t}}</option> 
</select> 

你可以把它改成有些事情也是這樣,使一個關聯數組或對象像

$scope.values = {"10":"ten", "25":"twenty-five","50":"fifty", "100":"hundred"}; 

演示

app = angular.module('test',[]); 
 
app.controller('testctrl',function($scope){ 
 
$scope.values = {"10":"ten", "25":"twenty-five","50":"fifty", "100":"hundred"}; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-controller="testctrl" ng-app="test"> 
 
    
 
<select> 
 
    <option ng-repeat="(key,val) in values " value="{{key}}">{{val}}</option> 
 
</select> 
 
    </div>

+0

是的,我意識到讓一組具有值和文本的對象更合理。但是,我堅持這兩個數組。 – 2014-12-18 23:00:13

+0

你可以嘗試一下,並在優化你的邏輯之後通過它:) – 2014-12-18 23:03:51

+0

你知道你重複整個'select'而不是'options'吧? – 2014-12-18 23:10:46