1

これが私の簡単なテンプレートです:

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

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

私の groupChat.html および groupChat.js ファイルでは:

<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}}); 
  }
});

新しいメッセージを送信すると、それが Mongol を使用して追加されていることがわかりますが (一瞬視覚的に)、すぐに削除されます。

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 }; 
  }
});

なぜこれが起こるのでしょうか?

4

1 に答える 1

0

公開されたコレクションを購読するのを忘れていました。

Meteor.subscribe('crewMessages');
于 2015-07-11T06:19:25.290 に答える