Meteor.js:如何在主页面内外交换部分模板

Eug*_*erg 2 meteor meteor-blaze

刚从流星开始.寻找一种方法来拥有一个单独的"主页面",其中包含一个区域,在该区域中,只需单击下一个/上一个按钮即可交换不同的部分模板.我了解如何使用{{> step_1_Template}}语法静态包含部分模板.我需要的是在主页面上永久保留Next/Previous按钮,并在单击Next按钮时删除{{> step_1_Template}}并插入{{> step_2_Template}}.这是怎么做到的?

Dav*_*don 12

我的下意识反应是你应该只使用铁路由器.但是,如果您根据路由交换模板,这可能才有意义.如果您坚持使用相同的路径并且仅更改部分,那么您可以使用会话变量来完成此操作.

当用户单击"下一步"按钮时,您可以设置会话变量,如:

Template.myTemplate.created = function() {
  Session.setDefault('currentStep', 1);
};

Template.myTemplate.events({
  'click #next': function() {
    var step = Session.get('currentStep');
    return Session.set('currentStep', step + 1);
  }
});
Run Code Online (Sandbox Code Playgroud)

然后你可以添加一个帮手:

Template.myTemplate.helpers({
  isStep: function(n) {
    return Session.equals('currentStep', n);
  }
});
Run Code Online (Sandbox Code Playgroud)

最后,您的模板可以根据会话选择适当的部分:

<template name='myTemplate'>
  {{#if isStep 1}}
    {{> step_1_Template}} 
  {{/if}}
  {{#if isStep 2}}
    {{> step_2_Template}} 
  {{/if}}
</template>
Run Code Online (Sandbox Code Playgroud)