gpt4 book ai didi

javascript - 从 ng-options 选择中使用 ng-options 过滤下拉列表

转载 作者:行者123 更新时间:2023-11-29 19:15:04 24 4
gpt4 key购买 nike

我正在尝试根据您在上一个选项中选择的内容来过滤 ng-options 下拉列表。这就是我想要实现的目标

如果您选择内部层级 1,则显示所有品牌层级

如果您选择 Internal Tier 2 show all Branding Tiers > 1

如果您选择 Internal Tier 3 显示 Branding Tier 3b

这是我的实际代码。

$scope.lookUps = {
companyTier: [
{ Id: 1, Name: '1 - Partner Branded'},
{ Id: 2, Name: '2 - Co-branded'},
{ Id: 3, Name: '3a - Answer Branded'},
{ Id: 4, Name: '3b - Answer Branded'}
],
internalTier: [
{ Id: 1, Name: 'Tier 1' },
{ Id: 2, Name: 'Tier 2' },
{ Id: 3, Name: 'Tier 3' }
]
};

这些是下拉菜单

<select class="form-control" name="companyinternaltier" 
ng-required="true" ng-model="companyData.InternalTierId"
ng-options="item.Id as item.Name for item in lookUps.internalTier">
<option value="">- Select Internal Tier Level -</option>

<select class="form-control" name="companytier" ng-required="true"
ng-model="companyData.Category" ng-options="item.Id as item.Name for
item in lookUps.companyTier | filter: filterTiers()">
<option value="">- Select Branding Tier Level -</option></select>

我将 filterTiers() 函数放在过滤词之后,因为我认为我可以创建一个函数来执行此操作,但我不知道如何处理它

我感谢任何形式的帮助。谢谢

最佳答案

开启:

<select class="form-control" name="companyinternaltier" 
ng-required="true" ng-model="companyData.InternalTierId"
ng-options="item.Id as item.Name for item in lookUps.internalTier">
<option value="">- Select Internal Tier Level -</option>

看来您已经有了存储所选值的位置。

ng-model="companyData.InternalTierId"

我将在 Controller 中做的是:

首先:

分离companyTier的对象:

companyTier: [
{ Id: 1, VisibilityRange: 1, Name: 'Partner Branded'},
{ Id: 2, VisibilityRange: 2, Name: 'Co-branded'},
{ Id: 3, VisibilityRange: 2, Name: 'Answer Branded'},
{ Id: 4, VisibilityRange: 3, Name: 'Answer Branded'}
]

然后:

添加过滤对象的功能。

$scope.filterTiers = function(companyTier) {
return (companyTier.VisibilityRange >= companyData.InternalTierId );
};

Controller 在改变后看起来像这样:

$scope.lookUps = {
companyTier: [
{ Id: 1, VisibilityRange: 1, Name: 'Partner Branded'},
{ Id: 2, VisibilityRange: 2, Name: 'Co-branded'},
{ Id: 3, VisibilityRange: 2, Name: 'Answer Branded'},
{ Id: 4, VisibilityRange: 3, Name: 'Answer Branded'}
],
internalTier: [
{ Id: 1, Name: 'Tier 1' },
{ Id: 2, Name: 'Tier 2' },
{ Id: 3, Name: 'Tier 3' }
]
};

$scope.filterTiers = function(companyTier) {
return (companyTier.VisibilityRange >= companyData.InternalTierId );
};

View 是这样的:

<select class="form-control" name="companyinternaltier" 
ng-required="true" ng-model="companyData.InternalTierId"
ng-options="item.Id as item.Name for item in lookUps.internalTier">
<option value="">- Select Internal Tier Level -</option></select>

<select class="form-control" name="companytier" ng-required="true"
ng-model="companyData.Category" ng-options="item.Name for item in (lookUps.companyTier | filter: tierFilter)">
<option value="">- Select Branding Tier Level -</option></select>

关于javascript - 从 ng-options 选择中使用 ng-options 过滤下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35951104/

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