我正在使用 mizzao / meteor-autocomplete 并且在尝试让它工作时遇到了问题。
在我的浏览器中查看页面时,输入任何文本时都没有任何结果。我已经创建了合适的集合:
Institutions = new Mongo.Collection("institutions");
并且知道实际数据库中有数据,但仍然没有成功。
我已在下方提供了我的文件。
publications.js (位于服务器文件夹中)
Meteor.publish('institutions', function(args) {
return Institutions.find({}, args);
});
registrationStart.js
我有两个帮助者;一个实际上支持搜索,另一个应该返回机构。我也用token: '@'
参数尝试了这个但没有成功。
if (Meteor.isClient) {
Template.registrationStart.helpers({
settings: function() {
return {
position: "top",
limit: 7,
rules: [{
collection: Institutions,
field: "name",
options: '',
matchAll: true,
template: Template.institutionSelectDisplay
}]
};
},
institutions: function() {
return Instititions.find();
}
});
Template.registrationStart.events({
"autocompleteselect input": function(event, template, doc) {
// Session.set(event.target.name, event.target.value);
console.log("selected: ", doc);
console.log("event.target.name: ", event.target.name);
console.log("event.target.value: ", event.target.value);
}
});
}
registrationStart.html 模板
<template name="registrationStart">
<div class="panel-body" id="loginForm">
<h2 class="pageTitle">veClient Registration</h2>
<form>
<div> </div>
<fieldset>
{{> inputAutocomplete settings=settings id="institution" class="input-xlarge" placeholder="type institution here"}}
</fieldset>
<div> </div>
<button type="submit" class="btn btn-primary btn-sm">Continue Registration</button>
</form>
</div>
</template>
要呈现的模板
<template name="institutionSelectDisplay">
<p class="inst-state">{{city}}, {{state}}</p>
<p class="inst-name">{{name}}</p>
<p class="inst-description">{{email}}</p>
</template>
答案 0 :(得分:1)
问题的结果是因为没有订阅&#34;机构&#34;出版物。因此需要在registrationStart.js文件中添加一个subscribe语句:
Meteor.subscribe('institutions');