Angular.js:从ID中选择默认值

Angular.js: set default selected from ID

本文关键字:选择 默认值 ID js Angular      更新时间:2023-09-26

我有一个angular.js单页应用程序,初始数据从rest端点收集。

这个应用程序获得一个代表保存模型的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,但不能设置默认值。我错过了什么?

将您的select ' ng-model更改为ng-repeat:

然后把这个放到你的控制器中:

// Main dropdown
$scope.member.option = OptionsTree[0];

然后:

// Sub dropdown
$scope.member.subOption = OptionsTree[0].subOptions[0].id

因为你的问题没有说明你是想要id还是整个对象,所以我假设整个对象是主下拉菜单,而只是子下拉菜单的id