【发布时间】:2015-10-23 21:37:01
【问题描述】:
我是 Javascript 和 Meteor 的新手,在让 Mizzau 的 Meteor 自动完成包正常工作时遇到了一些麻烦。我可以让表单自动完成就好了,但是很难让它过滤我的待办事项。我希望的最终结果是将待办事项输入自动完成并让它过滤订阅,我也会满足于搜索并从那里开始。我还要说我的初始状态是列表返回 0 个待办事项(没有显示)我觉得我可能已经接近了。我的代码中有很大一部分来自:Meteor - autocomplete with "distinct" feature? 吨 是否与我的订阅有关?
这是我的服务器端发布调用:
Meteor.publish("todosAuto", function(selector, options) {
Autocomplete.publishCursor(Todos.find(selector, options), this);
this.ready();
});
我的客户端订阅:
Meteor.subscribe('todosAuto');
我的模板的相关部分:
<div class="container todoFormSec">
<div class="col-md-4">
{{> inputAutocomplete settings=settings id="msg" class="form-control" placeholder="Search..."}}
</div>
<div class="row">
<div class="col-md-5 pull-right">
<h1 class="todocountstyle text-right">You Have {{ todoCount }} Todos</h1>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="todos">
{{ #each todosAuto }}
{{ >todo }}
{{ /each }}
</div>
</div>
</div>
</div>
还有我的设置:
Template.home.helpers({
todos: function() {
return Todos.find();
},
todoCount: function() {
return Todos.find({userid: Meteor.userId()}).count();
},
settings: function() {
return {
position: "top",
limit: 5,
rules: [
{
token: '@',
collection: 'Todos',
field: "title",
subscription: 'todosAuto',
template: Template.titlePill
},
{
token: '#',
collection: 'Todos',
field: "categories",
options: '',
subscription: 'todosAuto',
matchAll: true,
template: Template.dataPiece
}
]
};
}
});
Template.home.events({ // listen for selection and subscribe
"autocompleteselect input": function(event, template, doc) {
Meteor.subscribe("todosAuto", doc.title);
}
});
【问题讨论】:
标签: javascript meteor autocomplete