Meteor publishes even when autopublish is removed

151 views Asked by At

I am using Meteor 1.0

I have the following code :

/lib/collections.js

Members = new Mongo.Collection('members');

/lib/router.js

Router.configure({
    layoutTemplate: 'layout',
    loadingTemplate: 'loading',
    notFoundTemplate: 'notFound',
    waitOn: function() { return Meteor.subscribe('members'); }
});

Router.route('/', {name: 'menu'});
Router.route('/member/new/', {name: 'memberNew'});
Router.route('/member/renew/', {name: 'memberRenewal'});

/server/publications.js

Meteor.publish('members', function() {
    console.log("Publishing....");
    return Members.find();
});

/client/templates/memberList.js

Template.membersList.helpers({
    listMembers: function() {
        return members.find().fetch();    >>>>>> Error line
    }
});

I get the following error:

Exception in template helper: ReferenceError: members is not defined
at Object.Template.membersList.helpers.listMembers
(http://meteorvb.dhcp.meraka.csir.co.za:3000/client/templates/membersList.js?

I have removed autopublish bit if I change /client/templates/memberList.js to read

Template.membersList.helpers({
    listMembers: function() {
        return Members.find().fetch();    
    }
});

Everything works.

Can anyone please help me?

1

There are 1 answers

0
Will Parker On

I think it's just a typo where you have used lowercase m instead of upper case M for Members.

Template.membersList.helpers({
    listMembers: function() {
        return Members.find().fetch();    >>>>>> Error line
    }
});

Variables are case sensitive and since the members collection was assigned to "Members" you need to refer it as "Members" elsewhere.

Members = new Mongo.Collection('members');