[フィルター] を新しくクリックしても、以前の出力はクリアされませんが、存在するものに追加されます。たとえば、「禁止」でフィルタリングすると、禁止されたユーザーのリストが表示されます。次の「登録済み」によるフィルターでは、「禁止済み」は削除されず、「登録済み」がテーブルの最後に追加されます。コントローラーで $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);
});