如何通过父/子模型分配默认ngOptions
?
In this question OP使用ngOptions
模板
<select ng-model="x.site" ng-options="s.site for s in data"></select>
<select ng-model="x.name" ng-options="b.name for b in x.site.buildings"></select>
控制器
$scope.x = {};
$scope.data = [
{
"site" : "Brands Hatch",
"buildings" : [
{ "name" : "Building #1" },
{ "name" : "Building #2" },
{ "name" : "Building #3" }
]
},{
"site" : "Silverstone",
"buildings" : [
{ "name" : "Building #4" },
{ "name" : "Building #5" },
{ "name" : "Building #6" }
]
}
];
您将在 this fork 中看到的是,下拉菜单没有任何默认值---也就是说,默认选项是“空白” 。在正常使用情况下,这是一个非问题,默认选项可以通过控制器轻松配置,这很好地解释了 in the docs 。
ngOptions
消除父/子模型的“空白”选项?答案 0 :(得分:2)
空白项目由空模型值引起。您可以尝试将以下代码放在控制器的末尾。诀窍是在加载页面时以及站点值时初始化站点,构建和 floor 改变了。希望它有所帮助。
$scope.selected = {
site: $scope.data[0],
building: $scope.data[0].buildings[0],
floor: $scope.data[0].floors[0]
};
$scope.$watch('selected.site', function () {
console.log($scope.selected.site);
$scope.selected = {
site: $scope.selected.site,
building: $scope.selected.site.buildings[0],
floor: $scope.selected.site.floors[0]
};
});