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 用于子下拉菜单。