0

我正在阅读官方 angularjs 网站中给出的 Angularjs tuts 和文档。

这里我们添加一个选择框进行排序,像这样

  <select ng-model="orderProp">
   <option value="name">Alphabetical</option>
   <option value="age">Newest</option>
  </select> 

在控制器中,我们分配$scope.orderProp = "age"This works fine 和 'Newest' 将是默认选择选项。

然后我尝试将订单项放入模型并像这样使用 ng-repeat 填充选择框。

  <select ng-model="orderProp">
    <option ng-repeat="orderby in orderProperties" value="{{orderby.criteria}}">{{orderby.property}}</option>
  </select>

在哪里:

orderProp模型是:

function PhoneListCtrl($scope){

    $(document).ready($scope.orderProp = "age");

        $scope.orderProperties = [
            {"property":"Alphabetical","criteria":"name"},
            {"property":"Newest","criteria":"age"}
        ];
}

在 dom 我可以看到value="name"and value="age"。但是这次默认值没有设置为“最新”。我不明白为什么硬编码value="age"可以工作,而value="{{orderby.criteria}}"不能。任何人都可以请指导我完成。

4

2 回答 2

2

select以错误的方式使用:

<select ng-model="orderProp" 
    ng-options="orderby.criteria as orderby.property for orderby in orderProperties">
</select>

http://docs.angularjs.org/api/ng.directive:select

于 2013-03-22T13:20:53.330 回答
0

您应该使用ng-option来填充选择。

于 2013-03-22T13:20:54.523 回答