html 元素 innerHtml 随会话和服务器代码更改



此 webApp 有一个标头,该标头通过使用会话根据用户交互显示一条短消息,以使其具有响应性。 我想让服务器优先显示它自己的消息,它有一个。
就像如果server.message是",那么使用客户端会话,否则使用服务器消息。
我应该使用全局帮助程序吗?或者怎么能去做?谢谢。

Template.header.helpers({
  headerLabel: function(){
    return Session.get('taskSelected');
  }
});
<template name="header">
  <h1>
    <button class="col-xs-2 mainMenu" type="button">&#9776;</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">&#8942;</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();
    }
});

您必须创建服务器方法以查看是否有消息,但除此之外,这应该有效。

最新更新