Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何创建Meteor模板帮助器来检查相等性?_Javascript_Meteor_Spacebars_Meteor Helper - Fatal编程技术网

Javascript 如何创建Meteor模板帮助器来检查相等性?

Javascript 如何创建Meteor模板帮助器来检查相等性?,javascript,meteor,spacebars,meteor-helper,Javascript,Meteor,Spacebars,Meteor Helper,我正在制作一个聊天网络应用程序。 人们可以登录facebook并聊天(将消息插入mongoDB) 显示文本很简单: javascript: messages: function () { return Messages.find({}, {sort: {createdAt: 1}}); } 每条消息都有以下属性: text: text, createdAt: new Date(), // current time owner: M

我正在制作一个聊天网络应用程序。 人们可以登录facebook并聊天(将消息插入mongoDB)

显示文本很简单: javascript:

  messages: function () {
    return Messages.find({}, {sort: {createdAt: 1}});
  } 
每条消息都有以下属性:

text: text,
      createdAt: new Date(),            // current time
      owner: Meteor.userId(),           // _id of logged in user
      username: Meteor.user().profile.name
它工作得很好,但我想根据不同的情况“以不同的方式设置消息样式” 消息的所有者是否等于currentUser(即是我的消息还是其他消息)

例如,我希望我的消息是float:right,其他消息是float:left

我认为代码可能是这样的:

  {{#if mymsg}}
    <div class="msgdiv_my">
       <span class="message">{{text}}</span>
    </div>
  {{else}}
    <div class="msgdiv">
      <span class="message">{{text}}</span>
    </div>
  {{/if}}
Template.myTemplate.helpers({
  ownDocument: function (doc) {
    return doc.owner === Meteor.userId();
  }
});
<template name="myTemplate">
  {{#if ownDocument text}}
    <div class="msgdiv_my">
       <span class="message">{{text}}</span>
    </div>
  {{else}}
    <div class="msgdiv">
      <span class="message">{{text}}</span>
    </div>
  {{/if}}
</template>
{{{#if mymsg}
{{text}}
{{else}
{{text}}
{{/if}

在何处以及如何编写mymsg函数(如果
message.owner==currentUser
,则应返回True,否则返回false)

您通常会在模板帮助器中编写这些检查,如下所示:

  {{#if mymsg}}
    <div class="msgdiv_my">
       <span class="message">{{text}}</span>
    </div>
  {{else}}
    <div class="msgdiv">
      <span class="message">{{text}}</span>
    </div>
  {{/if}}
Template.myTemplate.helpers({
  ownDocument: function (doc) {
    return doc.owner === Meteor.userId();
  }
});
<template name="myTemplate">
  {{#if ownDocument text}}
    <div class="msgdiv_my">
       <span class="message">{{text}}</span>
    </div>
  {{else}}
    <div class="msgdiv">
      <span class="message">{{text}}</span>
    </div>
  {{/if}}
</template>
然后在
myTemplate
中,按如下方式呼叫您的帮助者:

  {{#if mymsg}}
    <div class="msgdiv_my">
       <span class="message">{{text}}</span>
    </div>
  {{else}}
    <div class="msgdiv">
      <span class="message">{{text}}</span>
    </div>
  {{/if}}
Template.myTemplate.helpers({
  ownDocument: function (doc) {
    return doc.owner === Meteor.userId();
  }
});
<template name="myTemplate">
  {{#if ownDocument text}}
    <div class="msgdiv_my">
       <span class="message">{{text}}</span>
    </div>
  {{else}}
    <div class="msgdiv">
      <span class="message">{{text}}</span>
    </div>
  {{/if}}
</template>
这样,您可以调用:

{{#if equals text.owner currentUser._id}}
得到同样的结果

KyleMit在Meteor中为你所有的平等检查需求而写