Обновление выпадающих массивов автоматически - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть два раскрывающихся списка, в которых я передаю два массива из моего файла 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 голосов
/ 24 апреля 2019

Не лучше ли просто использовать встроенный сервис фильтрации?

<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.subJ всякий раз, когда $ scope.aизменения?

0 голосов
/ 24 апреля 2019

Из того, что я понимаю, всякий раз, когда вызывается function2(selectedVal), вам нужно сбросить массив subj на пустой. Надеюсь, это должно сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...