Angularjs 在Angular jS中,尝试创建两个下拉列表
我试图在Angular JS中创建两个下拉列表 第一个下拉列表将具有以下值: “A”、“B”、“C” 当我选择A时,它应该在第二个下拉列表中显示A1、A2、A3、A4。同样,对于B,它应该显示B1、B2、B3、B4和C,它应该显示C1、C2、C3、C4 .以下是我的两张照片Angularjs 在Angular jS中,尝试创建两个下拉列表,angularjs,dropdown,Angularjs,Dropdown,我试图在Angular JS中创建两个下拉列表 第一个下拉列表将具有以下值: “A”、“B”、“C” 当我选择A时,它应该在第二个下拉列表中显示A1、A2、A3、A4。同样,对于B,它应该显示B1、B2、B3、B4和C,它应该显示C1、C2、C3、C4 .以下是我的两张照片 $scope.column = [{ colid: 1, name:"A" }, { colid: 2, name: "B" },
$scope.column = [{
colid: 1,
name:"A"
}, {
colid: 2,
name: "B"
}, {
colid: 3,
name: "C"
}];
$scope.Value=[{"A":"A1","B":"B1","C":"C1"},
{"A":"A2","B":"B2","C":"C2"},
{"A":"A3","B":"B1","C":"C3"},
{"A":"A1","B":"B3","C":"C1"},
{"A":"A4","B":"B4","C":"C4"},
];
下面是我尝试的代码
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script>
var app = angular.module('colFilter', ['ui', 'ui.filters']);
app.controller("colFilterCtrl", function ($scope, $timeout) {
$scope.columnList = [{
colid: 1,
name:"A"
}, {
colid: 2,
name: "B"
}, {
colid: 3,
name: "C"
}];
$scope.Value=[{"A":"A1","B":"B1","C":"C1"},
{"A":"A2","B":"B2","C":"C2"},
{"A":"A3","B":"B1","C":"C3"},
{"A":"A1","B":"B3","C":"C1"},
{"A":"A4","B":"B4","C":"C4"},
];
};
</script>
<div id="colFilterApp" data-ng-app="colFilter">
<div id="colFilterAppCtrl" data-ng-controller="colFilterCtrl" >
<select id="column" name="columns" ng-options="column.name for column in columnList" ng-model="selectedItem">
<option value="All">--Select--</option>
</select>
<select id="value" name="values">
<option value="All">--Select--</option>
<option ng-repeat="val in Value" value="{{val.selectedItem}}">{{val.selectedItem}}</option>
</select>
</div>
</div>
var app=angular.module('colFilter',['ui','ui.filters']);
app.controller(“colFilterCtrl”,函数($scope,$timeout){
$scope.columnList=[{
科里德:1,
姓名:“A”
}, {
科里德:2,
姓名:“B”
}, {
科里德:3,
名称:“C”
}];
$scope.Value=[{“A”:“A1”、“B”:“B1”、“C”:“C1”},
{“A”:“A2”,“B”:“B2”,“C”:“C2”},
{“A”:“A3”,“B”:“B1”,“C”:“C3”},
{“A”:“A1”,“B”:“B3”,“C”:“C1”},
{“A”:“A4”,“B”:“B4”,“C”:“C4”},
];
};
--挑选--
--挑选--
{{val.selectedItem}
有什么帮助吗?提前谢谢你,这叫做层叠下拉菜单。这里我创建了一个小提琴,请检查一下,让我知道
在这里,我创建了一个
$watch
,当第一个下拉列表更改时,它将命中。您可以使用ng click
click事件绑定数据。使用下面的代码片段
$scope.$watch
置于selectedItem
$scope.Value.filter
挑选
挑选
这里还有一个示例。在这个示例中,创建了一个数据对象,其中包含每个第一个下拉项的映射,这些下拉项可以在不久的将来通过数据库填充。下面是JSFIDLE
谢谢,但我需要我的json以这种方式工作。非常感谢。这就是我一直在寻找的。是的,这可能有一天会有用
$scope.$watch('first', function () {
$scope.Seconds = allSeconds.filter(function (s) {
return s.firstId == $scope.first.Id;
});
$scope.city = {};
$scope.Second = {};
$scope.cities = [];
});
$scope.columnList = [
{
colid: 1,
name: "A"
}, {
colid: 2,
name: "B"
}, {
colid: 3,
name: "C"
}
];
$scope.selectedItem = $scope.selectedItemValues = [];
$scope.childValues = {
"A": [{
colid: 1,
name: "A1"
}, {
colid: 2,
name: "A2"
}, {
colid: 3,
name: "A3"
}],
"B": [{
colid: 4,
name: "B1"
}, {
colid: 5,
name: "B2"
}, {
colid: 6,
name: "B3"
}],
"C": [{
colid: 7,
name: "C1"
}, {
colid: 8,
name: "C2"
}, {
colid: 9,
name: "C3"
}]
};
$scope.ddlChange = function () {
$scope.Value = ($scope.selectedItem !== undefined) ? $scope.childValues[$scope.selectedItem.name] : [];
};