如何在select中设置值和文本

时间:2014-03-23 18:27:48

标签: angularjs

我一直试图弄清楚如何设置这个特别选择:

<select name="ddlStatus" id="ddlStatus" class="form-control" ng-model="status" ng-      change="onChangeStatus()">
    <option ng-repeat="status in orderStatus" value="{{ status.ID }}">{{ status.Name }}  </option>
</select>

我如何设置没有ng-repeat并使用ng-options进行输入?我已经尝试了很多解决方案,但没有像我上面展示的那样解决它..

2 个答案:

答案 0 :(得分:2)

您可以将整个模型用作以下值:

<select ng-options="status.Name for status in orderStatus" ng-model="status">
</select>

这样您就可以在status.ID上获得所选的ID。 Angular会处理为你链接东西的价值模型。

当然,id也是可能的。虽然至少对我而言似乎有点令人困惑,因为你将在生成的html中使用数组索引,并将id作为实际值。

<select ng-options="status.ID as status.Name for status in orderStatus" ng-model="status">
</select>

此外,将整个模型设为status比使用id更有意义。

答案 1 :(得分:2)

您可以在as中使用ng-options

<select ng-model="status" ng-options="status.ID as status.Name for status in orderStatus"></select>

或者,即使您指定某个子字段(如status作为其标签),angular似乎足够聪明,可以使用整个name对象作为值。

<select ng-model="status" ng-options="status.Name for status in orderStatus"></select>

演示:http://jsfiddle.net/4ApFG/1/