此 webApp 有一个标头,该标头通过使用会话根据用户交互显示一条短消息,以使其具有响应性。 我想让服务器优先显示它自己的消息,它有一个。
就像如果server.message是",那么使用客户端会话,否则使用服务器消息。
我应该使用全局帮助程序吗?或者怎么能去做?谢谢。
Template.header.helpers({
headerLabel: function(){
return Session.get('taskSelected');
}
});
<template name="header">
<h1>
<button class="col-xs-2 mainMenu" type="button">☰</button>
</h1>
<h3>
<label class="col-xs-8 text-center">
{{#if headerLabel}}
{{headerLabel}}
{{else}}
Select an item
{{/if}}
</label>
</h3>
<h1>
<button class="col-xs-2" type="button">⋮</button>
</h1>
</template>
Template.mainMenu.events({
'click .menuItem': function (event) {
Session.set('taskSelected', this.menuItem);
});
我认为你可以用反应变量做到这一点:
Template.header.onCreated( function() {
this.message = new ReactiveVar( "" );
Meteor.call('serverMessageMethod', function(error, results) {
if( error || !results ) {
Template.instance().message.set(Session.get("yourVariable");
} else {
Template.instance().message.set(results);
}
});
});
Template.header.helpers({
message() {
return Template.instance().message.get();
}
});
您必须创建服务器方法以查看是否有消息,但除此之外,这应该有效。