流星自动完成服务器端

时间:2016-05-06 08:49:58

标签: meteor autocomplete server-side

我正在编写流星应用,并且我尝试在搜索框中添加自动填充功能。数据非常大并且在服务器上,因此我无法在客户端上拥有所有数据。它基本上是一个用户数据库。如果我没有错,mizzao:autocomplete包应该可以实现,但我似乎无法让它发挥作用。

这是我在服务器上的内容:

Meteor.publish('autocompleteViewers', function(selector, options) {
  Autocomplete.publishCursor(viewers.find(selector, options), this);
  this.ready();
});

以下是我用于客户端搜索框的设置:

  getSettings: function() {
    return {
      position: 'bottom',
      limit: 5,
      rules: [{
        subscription: 'autocompleteViewers',
        field: '_id',
        matchAll: false,
        options: '',
        template: Template.vLegend
      }],
    };
  }

但我一直在客户端上收到此错误:

Error: Collection name must be specified as string for server-side search at validateRule

我真的不明白这个问题。当我查看包代码时,似乎它正在测试订阅字段是字符串而不是变量,它是什么。知道问题可能是什么?否则,我可以从某个地方找到最低限度的工作示例吗?我无法在文档中找到一个。

1 个答案:

答案 0 :(得分:1)

Error: Collection name must be specified as string for server-side search at validateRule

您收到此错误是因为您没有在引号中指定Collection名称。

getSettings: function() {
 return {
   position: 'bottom',
   limit: 5,
   rules: [{
     subscription: 'autocompleteViewers',
     field: '_id',
     matchAll: false,
     collection: 'viewers', // <- specify your collection, in your case it is a "viewers" collection.
     options: '',
     template: Template.vLegend
   }],
 };

}

有关详细信息,请参阅here

希望这有帮助!