我有一个angular.js单页应用程序,从休息端点收集初始数据。
此应用获取表示已保存模型的ID列表,以及填充某些级联下拉列表的选项树。
如何根据模型中的ID设置树中的默认路径?
一些说明性代码:
型号:
DefaultOptions = [
{"Id" : 044},
{"Id" : 142},
{"Id" : 244}
];
OptionsTree = [
{"Text" : "Option1",
"subOptions" : [
{"Text" : "SubOption1", "Id" : 044},
{"Text" : "SubOption2", "Id" : 142}
]},
{"Text" : "Option2",
"subOptions" : [
{"Text" : "SubOptionA", "Id" : 3033},
{"Text" : "SubOptionB", "Id" : 244}
]}
];
HTML:
<div ng-repeat="member in DefaultOptions">
<select ng-model="option"
ng-options="o as o.Text for o in OptionsTree">
</select>
<select ng-model="subOption"
ng-options="s as s.Text for s in option.subOptions"
ng-disabled="!option"
ng-change="member.Id = subOption.Id">
</select>
</div>
如果用户选择新的ID,此HTML将正确更新DefaultOptions ID,但无法设置默认值。我错过了什么?
答案 0 :(得分:1)
将您的选择“ng-model
更改为ng-repeat
:
然后把它放在你的控制器中:
// Main dropdown
$scope.member.option = OptionsTree[0];
然后:
// Sub dropdown
$scope.member.subOption = OptionsTree[0].subOptions[0].id
由于您的问题未说明您是否需要id或整个对象,因此我假设主下拉列表的整个对象只是子下拉列表的id。