新单击 [Filter] 不会清除以前的输出,但添加到存在。例如,如果按“禁止”过滤,我看到禁止用户列表,下一个按“注册”过滤不会删除“禁止”,而是将“注册”添加到表的末尾。在控制器 $scope.site_users 被覆盖,但它仍然保存以前的过滤器输出。为什么会这样?可能是包装方面的东西?
已安装的软件包:
urigo:angular - Angular
angularui:angular-ui-router
accounts-password
accounts-ui
twbs:bootstrap
删除的包:
insecure
autopublish
或者在代码中
控制器:
angular.module("sis_admin_am").controller("UsersListCtrl", ['$scope', '$meteor',
function($scope, $meteor){
$scope.filter = function(){
$scope.site_users = '';
$scope.site_users = $meteor.collection(Users).subscribe('site_users_filtered', {status: $scope.userStatus});
};
}
]);
看法:
<form ng-submit="filter()">
<button>Filter</button>
<select ng-model="userStatus" >
<option ng-selected="selected">banned</option>
<option>registered</option>
<option>active</option>
</select>
</form>
<p></p>
<table class="table">
<tr class="panel panel-default">
<th>Name</th>
<th>Email</th>
</tr>
<tr ng-repeat="user in site_users">
<td>{{ user.username }}</td>
<td>{{ user.email }}</td>
</tr>
</table>
服务器部分:
Meteor.publish('site_users_filtered', function(options) {
console.log('options:', options);
return Users.find(options);
});