Angularjs :从列表中选择组合
Angularjs : Select combination from a list
我有一个简单的列表:
$scope.myArr = ["a_b_c","a_b_d","a_e_g","f_t_r","f_t_g","f_u_m"];
由此我想构建 3 <select></select>
.
第一个将包含数组的第一项,以 _
分隔。所以["a","a","a","f","f","f"]
第二["b","b","e","t","t","u"]
第三["c","d","g","r","g","m"]
我已经构建了这 3 个数组,并创建了唯一的值。
我需要的是,例如,如果我在第一个选择中选择a
,第二个只会显示b,b,e
。
我实际上想尊重开始数组($scope.myArr)
的可能组合
关于如何实现它的任何想法?
http://jsfiddle.net/uxo0jue3/
您可以循环数组、拆分值并创建分级对象。只需将其链接到视图:
var myArr = ["a_b_c","a_b_d","a_e_g","f_t_r","f_t_g","f_u_m"];
var levels = {};
myArr.forEach(function(arr) {
var split = arr.split("_");
if (!levels[split[0]])
levels[split[0]] = {};
if (!levels[split[0]][split[1]])
levels[split[0]][split[1]] = []
if (levels[split[0]][split[1]].indexOf(split[2]) === -1)
levels[split[0]][split[1]].push(split[2])
})
$scope.levels = levels;
和观点:
<div ng-controller="myAppList">
<select name="clienT" ng-model="clientW" ng-options="letter as letter for (letter, opts) in levels"></select>
<select name="projecT" ng-model="clientX" ng-options="letter as letter for (letter, opts) in levels[clientW]"></select>
<select name="platforM" ng-model="clientZ" ng-options="letter as letter for letter in levels[clientW][clientX]"></select>
</div>
演示:http://jsfiddle.net/uxo0jue3/4/
相关文章:
- 复选框选择组合
- 多个和单个选择/组合框的逻辑
- 在jquery mobile中动态选择组合框
- 从选择/组合 JavaScript 中删除节点
- 选择组合框值
- Angularjs :从列表中选择组合
- 选择组合框后显示复选框
- 编程岩石,纸张,剪刀的选择组合-Javascript
- 将数据输入和下拉选择组合到js中
- 从外部CSV文件填充选择组合框表单
- 角材质链通过从数组中选择组合,形成输入数组
- 根据文本自动选择组合框中的值
- 将输入和选择组合到一个可见的输入字段中
- ExtJS多选择组合框
- Ajax加载复选框后选择组合框- php
- 我如何在html页面中创建日期选择组合框
- 如何选择组合值,点击进入
- 选择组合框数据后的动态文本字段(编码器)
- 如何计算所有可能的选择组合
- 选择组合框值并通过隐藏字段将其发送到下一页