Meteor if语句中的Helper呈现器
请参阅以下代码:Meteor if语句中的Helper呈现器,meteor,Meteor,请参阅以下代码: Template.EditProfile.helpers({ 'welcomeMessage': function() { if (Session.get("welcomeMessage")) { var welcomeMessage = Session.get("welcomeMessage"); delete Session.keys['welcomeMessage'] return welcomeMe
Template.EditProfile.helpers({
'welcomeMessage': function() {
if (Session.get("welcomeMessage")) {
var welcomeMessage = Session.get("welcomeMessage");
delete Session.keys['welcomeMessage']
return welcomeMessage;
} else {
return false;
}
}
})
在html中
{{#if welcomeMessage}}
<div class="change-explain red-msg">{{ welcomeMessage }}</div>
{{else}}
<div class="change-explain">People will see your username on your comments.</div>
{{/if}}
{{{#如果欢迎消息}
{{welcomeMessage}}
{{else}
人们会在你的评论中看到你的用户名。
{{/if}
这总是没有任何效果。如果我把它放到If语句之外,它就可以正常工作。关于被动风格,我在这里遗漏了什么?在Meteor中,会话变量本身是被动的,这意味着当您更改“welcomeMessage”会话变量的值时,“welcomeMessage”助手将再次运行,并且不会显示任何内容。要对其进行测试,请注释掉
delete Session.keys['welcomeMessage']
,在应用程序运行时,在控制台中键入类似于Session.set('welcomeMessage','test')
的内容,然后键入Session.set('welcomeMessage')
如果要根据该会话变量设置类,可以添加以下帮助器:
'getClass': function() {
var className = "";
if (Session.get("welcomeMessage"))
className = 'red-msg';
return className;
}
'getMessage': function() {
var messsage = "People will see your username on your comments.";
if (Session.get("welcomeMessage"))
messsage = Session.get("welcomeMessage");
return messsage;
}
和一个消息帮助程序,如:
'getClass': function() {
var className = "";
if (Session.get("welcomeMessage"))
className = 'red-msg';
return className;
}
'getMessage': function() {
var messsage = "People will see your username on your comments.";
if (Session.get("welcomeMessage"))
messsage = Session.get("welcomeMessage");
return messsage;
}
然后您的html将如下所示:
<div class="change-explain {{getClass}}">{{getMessage}}</div>
{{getMessage}
谢谢!那么,仅当welcomeMessage
未定义时,我应该如何更改代码以添加类red msg
?