我有两个下拉列表,其中我从我的angularjs文件中传递了两个数组。一个下拉列表具有名称,另一个下拉列表具有主题。因此,当从第一个下拉列表中选择一个名称时,与该名称相关的主题将加载到第二个下拉列表中。它的工作正常。但是,如果我再次从第一个下拉列表中选择另一个名称,而不是仅显示与第二个选择的名称相关的主题,则与名字和第二个名称相关的主题都显示在第二个下拉列表中。我将这些值存储在两个全局数组中,并将它们传递给两个下拉列表。如何在第二个下拉列表中仅显示相关值?
js
$scope.arrayName = [];
$scope.arraySubj = [];
function1()
{
//assigning values to $scope.arrayName;
}
function2(selectedVal)
{
//assigning values to $scope.Subj;
}
HTML
<body>
<select ng-model="a" ng-options="item for item in arrayName" ng-change="function2(a)">
<select ng-model="b" ng-options="item for item in $scope.Subj">
</body>
答案 0 :(得分:0)
据我了解,每当调用function2(selectedVal)
时,都需要将subj数组重置为空。希望这可以解决问题。
答案 1 :(得分:0)
仅使用内置的过滤器服务会更好吗?
<select ng-model="a" ng-options="name as name in arrayName"></select>
<select ng-model="b" ng-options="item as item in arraySubj | filter: customFilter"></select>
其中
$scope.customFilter = function(item, idx, arr) {
return (does item match whatever the criteria is from $scope.a);
}
只要$ scope.a发生变化,而不是重建$ scope.subJ数组?