6

Meteor でパラメーター ベースのパブリケーションを実装したいのですが、いくつか問題が発生しています。

これが私が持っているものです。

ユーザーがパブリケーションをサブスクライブし、入力の値を渡す keyup イベントを入力すると。

'keyup #customerSearch': function(event, template){
    var keyword = template.find('#customerSearch').value;
    if(keyword){
      if(keyword.length >= 3){
        Meteor.subscribe('sessioncustomers', keyword); 
      }
    }
  }

パブリケーションは、このキーワードを使用してレコードを返します。

Meteor.publish("sessioncustomers", function(keyword){
  if(keyword ){
    if(keyword.length >= 3){
      query.name  = new RegExp(regExpQuoted(keyword), 'i' );
      Customers.find(query);
    } else {
      return null;
    }
  }else{
    return null;
  }
});

問題。クライアントがキーワードを変更した場合、またはキーワードが変更されたときにパブリケーションがキーワードに一致する追加のドキュメントを発行した場合を除いて、それは機能し、ドキュメントが受信されますが、クライアント コレクションは古いドキュメントを削除しません。

クライアント コレクションから一致しなくなった古いドキュメントを取得するにはどうすればよいですか?

サブスクリプションのパラメーターが変更されたため、一致しないドキュメントのサブスクリプションが解除され、新しい一致するドキュメントのみがサブスクリプションされると思いました。

4

2 に答える 2