动态下拉选择AngularJS不工作
我正在练习Angular,希望给用户提供从3个下拉菜单中选择的选项。第三个菜单应该是动态的,具体取决于前两个菜单中的选择 我的html:动态下拉选择AngularJS不工作,angularjs,drop-down-menu,angularjs-scope,angularjs-ng-repeat,ng-options,Angularjs,Drop Down Menu,Angularjs Scope,Angularjs Ng Repeat,Ng Options,我正在练习Angular,希望给用户提供从3个下拉菜单中选择的选项。第三个菜单应该是动态的,具体取决于前两个菜单中的选择 我的html: // First dropdown menu, static <select ng-model="selectedLetter" ng-change="setColorSelection()" ng-options="letter as letter for letter in letters"> </select> <
// First dropdown menu, static
<select ng-model="selectedLetter" ng-change="setColorSelection()"
ng-options="letter as letter for letter in letters">
</select>
<br>
// second dropdown menu, static
<select ng-model="selectedNumber" ng-change="setColorSelection()"
ng-options="number as number for number in numbers">
</select>
<br>
// third dropdown menu, should be dynamic
<select ng-model="selectedColor"
ng-options="color as color for color in colorSelection">
</select>
因此,如果用户从第一个菜单中选择“A”,从第二个菜单中选择“2”,他应该会在第三个菜单中看到“A2”的选项
问题:目前,第三个菜单未填充。
当我执行console.log($scope.colorSelection)时,我在控制台中得到[Object,Object],而不是[{“blue”:“202”},{“black”:“203”}]
另外,我只想显示菜单中的颜色,而不想显示与它们相关联的数字。我可以使用(key,value)在ng repeat中执行此操作,但不确定如何在ng选项中执行此操作 更改对象的颜色,如
var colors = {
'A1': [{"color": "Red", "code": "100"}, {"color":"pink", "code": "101"}]
};
和ng选项
<select ng-model="selectedColor"
ng-options="color.code as color.color for color in colorSelection">
</select>
下拉列表工作正常且正确。您的
json
对象[{“red”:“100”}、{“pink”:“101”}]
中的问题
下拉列表可用作源对象
,或数组
所有可能的选项下拉列表使用,请参阅
我认为有两种方法可以更改json:
- 将其转换为对象数组李>
- 使用关键点将其转换为单个对象
var colors = {
'A1': [{"color": "red", "code": "100"}, {"color":"pink", "code": "101"}]
};
var colors = {
'A1': {"red": "100","pink": "101"}
};
第二种方式:
var colors = {
'A1': [{"color": "red", "code": "100"}, {"color":"pink", "code": "101"}]
};
var colors = {
'A1': {"red": "100","pink": "101"}
};
参见关于的示例
角度模块('ExampleApp',[])
.controller('ExampleController',函数($scope){
$scope.letters=['A','B'];
$scope.numbers=['1','2'];
var colorsByArray={
“A1”:[{
“颜色”:“红色”,
“代码”:“100”
}, {
“颜色”:“粉色”,
“代码”:“101”
}]
};
变量colorsByObject={
“A1”:{
“红色”:“100”,
“粉红”:“101”
}
};
$scope.colorSelection=[];
$scope.setColorSelection=函数(){
如果($scope.selectedLetter&&$scope.selectedNumber){
$scope.colorSelectionByArray=colorsByArray[$scope.selectedLetter+$scope.selectedNumber];
$scope.colorSelectionByObject=colorsByObject[$scope.selectedLetter+$scope.selectedNumber];
}
}
});代码>
选择“A”
选择“1”
迭代数组
迭代对象
同样的问题,我在控制台中得到[Object,Object],而不是[{“blue”:“202”},{“black”:“203”}]