简体   繁体   中英

Unable to get mizzao/meteor-autocomplete to work with collection

I am using mizzao/meteor-autocomplete and am having problems in trying to get it to work.

When viewing the page in my browser, I am getting no results at all when typing any text. I've created the appropriate collection:

Institutions = new Mongo.Collection("institutions");

and know that there is data in the actual db, however still no success.

I've included my files below.

publications.js (located in the server folder)

Meteor.publish('institutions', function(args) {
    return Institutions.find({}, args);
});

registrationStart.js

I've two helpers; one that actually powers the search and the other that should be returning the institutions. I have also tried this with the token: '@' argument with no success.

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

<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>

And the template to be rendered

<template name="institutionSelectDisplay">
    <p class="inst-state">{{city}}, {{state}}</p>
    <p class="inst-name">{{name}}</p>
    <p class="inst-description">{{email}}</p>
</template>

Problem resulted because there was no subscription to the "institutions" publication. So need to add a subscribe statement to the registrationStart.js file:

Meteor.subscribe('institutions');

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM