1

Here's my simple template:

<template name="feed">
  {{> crewChat}}

  {{> statusSubmit}}
  {{#each statuses}}
    {{> statusItem}}
  {{/each}} 
</template>

In my groupChat.html and groupChat.js files:

<template name="crewChat">

  <div class="post-item">
    <div class="ui feed">
      {{#each messages}}
        {{> crewChatMessage}}
      {{/each}}
    </div>

  </div>

  <form class="new-message">
    <textarea id="message" name="content" rows="2"></textarea> 
    <div class="post-actions text-right">
      <input type="submit" value="Submit" class="compact tiny ui primary button">
    </div>
  </form>

</template>

Template.crewChat.events({
  'submit form': function(e) {
    e.preventDefault();

    var crewMessage = {
      content: e.target.content.value
    }

    Meteor.call('createCrewMessage', crewMessage, function(error, result) {
      if (error)
        return alert(error.reason);
      console.log("Create new crew message.");
      $(e.target.content).val("");
    });
  }
});

Template.crewChat.helpers({
  messages: function() {
    return CrewMessages.find({}, {sort: {submitted: -1}}); 
  }
});

When I submit a new message, I can see it added using Mongol (and visually for a split second), but it's removed immediately after.

Meteor.methods({
  createCrewMessage: function(crewMessageAttributes) {
    var user = Meteor.user();
    var crewMessage = _.extend(crewMessageAttributes, {
      userId: user._id, 
      author: user.profile.firstName, 
      submitted: new Date()
    });
    var crewMessageId = CrewMessages.insert(crewMessage);
    return { _id: crewMessageId }; 
  }
});

Any ideas why this would be happening?

sergserg
  • 21,716
  • 41
  • 129
  • 182

1 Answers1

0

I had forgotten to subscribe to my published collection.

Meteor.subscribe('crewMessages');
sergserg
  • 21,716
  • 41
  • 129
  • 182