可能重复:
How to make a preselection for a select list generated by AngularJS?
在角度教程中,他们设置了一个sortOrder范围变量,默认排序方式是选择“最新”。
在我的fiddle我做的很相似,但未选择我的选择值。相反,我得到空白条目,好像我没有在范围中设置任何值。然而,我可以看到我的排序顺序,我发出的是选择的值,它已预设。
//set a default this way also, but not updating the dropdown
$scope.ddlFilter = {
name: "All Open Events",//doesn't matter what this is, only cares about value
value: "ALL"//"OPEN"
};
我知道我可以使用ng-init设置默认值,但我希望能够这样做。 有什么建议吗?
答案 0 :(得分:6)
尝试使用对象而不是对象数组。它允许您通过字符串与数组位置(例如scope.eventFilters[0]
。
$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/