Angularjs绑定的select的默认值
AngularJS绑定选择的默认值是一个常见的问题。出现这个问题的原因是,当使用数组对象作为选择项时,无法直接设置默认值。解决方法是将选择项定义为一个对象,然后通过字符串引用来设置默认值。
首先,将选择项定义为一个对象,其中每个属性都是选择项的键值对。例如:
$scope.eventFilters = { "OPEN": "All Open Events", "UNMAPPED": "All Un-Mapped Events", "MAPPED": "All Mapped Events", "CLOSED": "All Closed Events (past 8 hours)", "ALL": "All Events", "OTHER": "Other OpCenter Open Events" };
然后,将默认值设置为选择项对象中的一个键(字符串):
$scope.ddlFilter = "MAPPED";
接下来,在页面上更新选择框的定义:
<select ng-model="ddlFilter" ng-options="k as v for (k, v) in eventFilters"></select>
此时,过滤器不再需要使用.value
,所以过滤器的定义将变为:
<tr ng:repeat="event in events | myEventFilter:ddlFilter | orderBy:sort.column:sort.descending">
你可以在这里查看修改后的代码的工作示例:http://jsfiddle.net/WXLte/2/
然后,有人提出了一个相关的问题,即如何将动态获取的选项与现有选项合并。解决方法是使用angular.extend方法,它可以将新的属性合并到当前对象中。类似于jQuery的方法。
有人建议提出一个新的问题,更具体地解释这个新问题,并提供链接到这个问题的引用,这样可以获得更多人的帮助。