3

为什么这个中继器坏了

<select name="quarter" ng-model="Quarter" ng-selected="Quarter" >
    <option ng-repeat="v in [1,2,3,4]" value="{{v}}">Q{{v}}</option>
</select>

但不是手写方式?

<select name="quarter" ng-model="Quarter" ng-change="onQuarterChange()" ng-selected="Quarter">
    <option value="1">Q1</option>
    <option value="2">Q2</option>
    <option value="3">Q3</option>
    <option value="4">Q4</option>
</select>
4

2 回答 2

7

坚持ng-options

<div ng-app>
  <h2>Todo</h2>
  <div ng-controller="QuarterController">
    <select name="quarter" ng-model="Quarter" ng-options="obj.value as obj.text for obj in [{'value': 1,'text' : 'Q1'},{'value':2,'text':'Q2'},{'value':3,'text':'Q3'},{'value':4,'text':'Q4'}]">
    </select>
  </div>
</div>

function QuarterController($scope) {
    $scope.Quarter = 2;
}   

http://jsfiddle.net/hDNsm/3/

您不妨在控制器中定义数组

于 2013-04-02T19:52:04.433 回答
4

注意两点:

  1. 'ng-selected' 指令应该写在 'option' 元素上,而不是 'select' 元素上。

  2. 'ng-selected' 属性的内容应该是选择选项的条件。一个简单的例子可能是选项的值等于选择模型。

你的代码应该是这样的:

<select name="quarter" ng-model="Quarter">
    <option ng-repeat="v in [1,2,3,4]" value="{{v}}" ng-selected="v==Quarter">Q{{v}}</option>
</select>
于 2014-10-27T13:40:57.813 回答