我正在尝试使用以下方法过滤列表(在 list.html 中):
<div ng-repeat="event in events | filter:filter | orderBy:order">
我的 ListController 中有一个过滤器对话框
.controller('ListController', ['$scope', '$dialog', function($scope,$dialog) {
$scope.filterDialog = function() {
var dlg = $dialog.dialog({
templateUrl: 'pages/filter.html',
controller: 'FilterController'
});
};
}])
filter.html 包含:
<form id="filter-form">
<fieldset>
<legend>Filter</legend>
<label>Name:</label>
<input type="text" ng-model="filter.name">
<label>Description:</label>
<input type="text" ng-model="filter.description">
<div id="sort_section">
<label>Sort By:</label>
<label class="radio">
<input type="radio" name="sort_by" value="time" ng-model="order.time" ng-checked="true" /> Time
</label>
<label class="radio">
<input type="radio" name="sort_by" value="distance" ng-model="order.name" /> Name
</label>
</div>
<button type="submit" class="btn" ng-click="close(filter,order)">Submit</button>
</fieldset>
</form>
它似乎没有与列表绑定,因此列表没有过滤。
我在这里想念什么?
更新
我更改了上面的代码(向 ng-click="close()" 调用添加了参数),
我注意到只有当我删除type="radio"
部分时,我才能得到“订单”。
更新
这是ng-checked="true"
一块,一旦取下,我就得到了过滤器。