Angular指令ng-selected不更新模型。

3
当在选项上使用angular指令ng-selected时,绑定的模型直到手动更改选择后才会更新。这是按设计吗?

http://jsfiddle.net/PqHsL/1/

<div ng-app ng-init="colors=['red', 'yellow', 'blue']">
  <select ng-model=selectedElement>
    <option ng-repeat="color in colors" value="{{color}}" ng-selected="$last">{{color}}</option>
  </select>

  selectedElement: {{ selectedElement }}
</div>
1个回答

4

我不知道它是否按设计工作。

我有这样的印象:ng-selected和ng-model不能很好地配合使用。(请注意,ng-selected API页面在示例选择列表中没有使用ng-model。)

以下是两种解决方法:

  1. 除设置ng-selected外,还需设置绑定模型。也可以使用ng-init:
    ng-init="colors=['red', 'yellow', 'blue']; selectedElement=colors[colors.length-1]"

  2. 设置绑定模型,不使用ng-selected,使用ng-options:
    ...如上所述的ng-init...
    <select ng-model=selectedElement ng-options="color for color in colors">{{color}}</select>

Fiddle

Solution 1有一个奇怪的“空白”/空选项,当您选择某些内容时,它会消失。解决方案2没有空选项,并且更简洁。(所以,是的,我喜欢解决方案2。)
我不确定ng-selected的用例是什么,如果我们可以设置模型来预先选择选项。我们还可以在程序中稍后更改选择--请参见Fiddle中的ng-click。

我使用了#2,但是必须先显式地设置模型。谢谢。 - Lester Burnham

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接