我正在使用易于搜索套餐,并希望搜索帖子(或评论这些帖子)。
问题:输入搜索时没有显示任何内容。在console.log和服务器上都没有显示错误消息。
更新: 我在发布和订阅上都做了console.log。因此,subscribe返回浏览器devtools上的console.log,但发布不会返回服务器终端上的任何内容。
模板html
<template name="searchPosts">
{{> esInput id="main" index=indexes placeholder="Search.." }}
{{#esEach index="posts"}}
{{> postItem}}
{{/esEach}}
{{#esEach index="comments"}}
{{> postItem}}
{{/esEach}}
</template>
模板js - 客户端
Template.searchPosts.onCreated(function () {
var self = this, instance;
instance = EasySearch.getComponentInstance(
{ id: 'main', index: 'posts'},
{ id: 'main', index: 'comments'}
);
instance.on('searchingDone', function (searchingIsDone) {
searchingIsDone && console.log('I am done!');
});
instance.on('currentValue', function (val) {
console.log('The user searches for ' + val);
});
this.subscribe("allDocs");
});
Template.searchPosts.helpers({
indexes : function () {
return ['posts', 'comments'];
},
posts: function () {
return Posts.find();
}
});
答案 0 :(得分:1)
您是否尝试过initEasySearch而不是createSearchIndex?我用过这个,一切都正常显示:
News.initEasySearch(['title', 'body'], {
'limit': 3,
'use': 'mongo-db',
'returnFields': ['title', 'category', 'slug', 'coverImage', 'publishedAt']
})
这将搜索字段标题和正文的新闻集合,返回以下字段。然后,在html上,我只调用{{title}}和其他字段,因为returnFields实际上是easySearch订阅的内容,以便在前端显示它。
好的,这是一个有效的演示: https://jsfiddle.net/nke3qbxr/