gpt4 book ai didi

javascript - Angular : Select combination from a list

转载 作者:数据小太阳 更新时间:2023-10-29 04:42:02 25 4
gpt4 key购买 nike

我有一个简单的列表:

$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/

最佳答案

您可以循环数组、拆分值并创建水平对象。简单地将它链接到 View :

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;

和 View :

<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/

关于javascript - Angular : Select combination from a list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34878906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com