无法使用mizzao / meteor-autocomplete处理集合

时间:2015-06-26 12:12:59

标签: mongodb meteor

我正在使用 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>&nbsp;</div>
        <fieldset>
            {{> inputAutocomplete settings=settings id="institution" class="input-xlarge" placeholder="type institution here"}}
        </fieldset>
        <div>&nbsp;</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>

1 个答案:

答案 0 :(得分:1)

问题的结果是因为没有订阅&#34;机构&#34;出版物。因此需要在registrationStart.js文件中添加一个subscribe语句:

Meteor.subscribe('institutions');