Angular.js: 设置默认从ID中选择
Angular.js: set default selected from ID
我有一个 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>
如果用户选择新的 DefaultOptions ID,此 HTML 将正确更新 DefaultOptions ID,但无法设置默认值。我错过了什么?
更改您的选择'ng-model
以考虑ng-repeat
:
然后将其放入您的控制器中:
// Main dropdown
$scope.member.option = OptionsTree[0];
然后:
// Sub dropdown
$scope.member.subOption = OptionsTree[0].subOptions[0].id
由于你的问题没有说明你是想要 id 还是整个对象,我假设整个对象用于主下拉菜单,而只有 id 用于子下拉菜单。
我有一个 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>
如果用户选择新的 DefaultOptions ID,此 HTML 将正确更新 DefaultOptions ID,但无法设置默认值。我错过了什么?
更改您的选择'ng-model
以考虑ng-repeat
:
然后将其放入您的控制器中:
// Main dropdown
$scope.member.option = OptionsTree[0];
然后:
// Sub dropdown
$scope.member.subOption = OptionsTree[0].subOptions[0].id
由于你的问题没有说明你是想要 id 还是整个对象,我假设整个对象用于主下拉菜单,而只有 id 用于子下拉菜单。