Angularjs 如何在angular js中显示相关的选择框选项
我有一个表单,我想有两个选择框,这样在其中一个框中,某些选项将根据另一个选择框的当前值显示/隐藏 e、 gAngularjs 如何在angular js中显示相关的选择框选项,angularjs,select,Angularjs,Select,我有一个表单,我想有两个选择框,这样在其中一个框中,某些选项将根据另一个选择框的当前值显示/隐藏 e、 g 请提供帮助。尽管您没有尝试任何操作,但我仍将演示如何使用另一个选择的值更改选择的值,请参见此 我使用了两个类似的数组,并使用ng选项在select中重复了它们 $scope.values = [{ id: 1, label: 'aLabel', subItem: 'abc' }, { id: 2, label: 'bLabel', subItem: 'pqr'
请提供帮助。尽管您没有尝试任何操作,但我仍将演示如何使用另一个选择的值更改选择的值,请参见此 我使用了两个类似的数组,并使用
ng选项在select
中重复了它们
$scope.values = [{
id: 1,
label: 'aLabel',
subItem: 'abc'
}, {
id: 2,
label: 'bLabel',
subItem: 'pqr'
}];
$scope.values2 = [{
id: 1,
label: 'aLabel',
subItem: 'abc'
}, {
id: 2,
label: 'bLabel',
subItem: 'pqr'
}];
<select ng-options="item.label as item.subItem for item in values " ng-model="selected1"></select>
<select ng-options="item2.label as item2.subItem for item2 in values2 " ng-model="selected2" ng-change='fun()'></select>
然后用select2
的值更改型号select1
希望这能有所帮助。设置此设置的最简单方法是简单地使第二个集合依赖于第一个集合的选择。您可以通过多种方式实现这一点,但简单地交换绑定的集合是您的最佳选择
一个简单的例子:
(函数(){
"严格使用",;
函数InputController(){
辅助变量={
答:[1,2,3],
B:[3,4,5]
},
vm=这个;
vm.primary=['A','B'];
vm.selectedPrimary=vm.primary[0];
vm.onPrimaryChange=函数(){
vm.secondary=secondary[vm.selectedPrimary];
};
}
角度模块('输入',[]))
.controller(“InputCtrl”,InputController);
}());代码>
主要的,重要的
次要的
好的,这对我来说很有效
var propertiesSearchModule = angular.module('propertiesSearchModule');
propertiesSearchModule.controller('searchFormController', ['$scope' ,'$rootScope', function($scope, $rootScope) {
$scope.a = [
{label:'Sale', value:'sale'},
{label:'Rent', value:'rent'}
];
$scope.t = {
residential : {
label:'Residential', value:'residential',
uOptions : [
{label: 'Villa', value: 'villa'},
{label: 'Apartment', value: 'apartment'},
{label: 'Duplex', value: 'duplex'},
{label: 'Office', value: 'office'}
]
},
commercial : {
label:'Commercial', value:'commercial',
uOptions :[
{label: 'Penthouse', value: 'penthouse'},
{label: 'Full floor', value: 'full floor'},
{label: 'Hotel apartment', value: 'hotel apartment'},
{label: 'Warehouse', value: 'warehouse'}
]
}
}
}]);
这是HTML
<div data-ng-controller="searchFormController">
<form name="propertiesSearchForm" action="" method="get">
<select name="t" id="select-type" class="search-select" data-ng-options="v.value as v.label for (x,v) in t" data-ng-model="fields.t">
<option value="" selected="selected">Types</option>
</select>
<select name="u" id="select-unit-type" data-ng-options="y.value as y.label for y in t[fields.t].uOptions" data-ng-model="fields.u">
<option value="" selected="selected">Unit Type</option>
</select>
</form>
</div>
类型
单位类型
灵感来源:你试过Anks Naeem的任何东西吗,但这根本不是我的问题所在。不管怎样,我找到了解决办法,见下面的答案。
var propertiesSearchModule = angular.module('propertiesSearchModule');
propertiesSearchModule.controller('searchFormController', ['$scope' ,'$rootScope', function($scope, $rootScope) {
$scope.a = [
{label:'Sale', value:'sale'},
{label:'Rent', value:'rent'}
];
$scope.t = {
residential : {
label:'Residential', value:'residential',
uOptions : [
{label: 'Villa', value: 'villa'},
{label: 'Apartment', value: 'apartment'},
{label: 'Duplex', value: 'duplex'},
{label: 'Office', value: 'office'}
]
},
commercial : {
label:'Commercial', value:'commercial',
uOptions :[
{label: 'Penthouse', value: 'penthouse'},
{label: 'Full floor', value: 'full floor'},
{label: 'Hotel apartment', value: 'hotel apartment'},
{label: 'Warehouse', value: 'warehouse'}
]
}
}
}]);
<div data-ng-controller="searchFormController">
<form name="propertiesSearchForm" action="" method="get">
<select name="t" id="select-type" class="search-select" data-ng-options="v.value as v.label for (x,v) in t" data-ng-model="fields.t">
<option value="" selected="selected">Types</option>
</select>
<select name="u" id="select-unit-type" data-ng-options="y.value as y.label for y in t[fields.t].uOptions" data-ng-model="fields.u">
<option value="" selected="selected">Unit Type</option>
</select>
</form>
</div>