Javascript 如何创建Meteor模板帮助器来检查相等性?
我正在制作一个聊天网络应用程序。 人们可以登录facebook并聊天(将消息插入mongoDB) 显示文本很简单: javascript: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
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中为你所有的平等检查需求而写