动态下拉选择AngularJS不工作

动态下拉选择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> <

我正在练习Angular,希望给用户提供从3个下拉菜单中选择的选项。第三个菜单应该是动态的,具体取决于前两个菜单中的选择

我的html:

// 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”}]