自动刷新下拉列表

时间:2019-04-23 07:02:31

标签: html angularjs

我有两个下拉列表,其中我从我的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>

2 个答案:

答案 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数组?