角度可以设置对象(而不是对象列表)的默认选项

Angular possible to set default option for object (not list of objects)?

本文关键字:对象 列表 选项 默认 设置      更新时间:2023-09-26

我有一个使用对象的简单<select>下拉列表,我想根据模型设置默认选项。对于对象列表,我只能使用track by,但是否可以只填充一个对象的默认值?

我尽量避免使用列表,因为它在其他地方增加了一层复杂性。

HTML:

  <body ng-controller="myCtrl">
    <select ng-model="status" 
    ng-options="num as name for (num, name) in statuses">
        <option value="">Select One</option>    
    </select>
    <div>Status: {{status}}</div>
  </body>

JS:

  $scope.statuses = {
    100: 'a',
    200: 'b',
  };
  $scope.status = 200; //should set default option

Plunker供参考:

http://plnkr.co/edit/ZaIHXz0VyECJBvo9xi1Z?p=preview

是的,您只需要将模型设置为字符串。对象的键(Object.keys)是字符串,它们不是数字(即使在迭代对象的属性时将其设置为数字,它们也将是字符串,这肯定是角度必须做的,即迭代贴图以设置选项)。

所以改变

$scope.status = 200;

$scope.status = "200";

Plnkr