Angular:使用ng-option时出错

时间:2014-06-27 18:24:09

标签: javascript html angularjs data-binding ng-options

我有这个架构:

teams: [
   {
      id: 1,
      name: "Spain"
   },
   {
      id: 2,
      name: "Germany"
   }
]

现在我有了这个选择元素:

<select ng-model="betSchema.winnerId" ng-options="team.name for team in teams track by team.id">
    <option value="-1">Tie</option>
</select>

betSchema对象看起来像这样(默认情况下):

{
   winnerId: -1
}

以下是我看到的结果:

enter image description here

问题是:
1.我看不到领带选项,并且有一个神秘的“空白”选项(第一个位于顶部)。 2.当betSchema看起来像这样:

{
   winnerId: 2
}

我期待看到德国选项被选中。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

看到这个小提琴:http://jsfiddle.net/Mn4SH/4/

有几件事。

  1. 使用ng-options时,Angular会覆盖您的选项标签,因此您必须将其添加到模型中,如下所示:

    scope.teams = [{ id: -1, name: "Tie" }, { id: 1, name: "Spain" }, { id: 2, name: "Germany", }];

  2. 其次,你可以使用track by但使用&#34; as&#34;也可以在这种情况下工作:https://docs.angularjs.org/api/ng/directive/select。您可以将obj.dataToBeStoredInModel用作obj.labelOfData,用于objList中的obj,以获取ng-options的id。