meteor app:如何正确使用按钮来影响路线

时间:2014-04-08 15:10:32

标签: meteor

我正在研究调查/向导类型的流星应用程序。 界面将只有两个导航按钮,将根据给定用户当前所处的步骤动态确定其标题/值。 我的问题是:我应该在这两个按钮的定义中使用什么标记语法,以指示Iron Router更改路由。换句话说,我应该在按钮定义中放置这个:this.redirect(' / anotherpath')?

3 个答案:

答案 0 :(得分:7)

如果模板中有按钮。如果您正在使用来自f3rland的hrefs检查答案。

HTML:

<button #id="mybutton>m<Button</button>

你可以用javascript

来捕捉buttonpress事件

JS

Template.myTemplate.events({
  'click #myButton': function(event, template) {
    event.preventDefault();  
    Router.go('anotherpath');
  }
});

路由器应如下所示:

Router.map(function() {
  this.route('anotherpath', {
    path: '/',

    layoutTemplate: 'myLayout',

    controller: myController
  });
});

答案 1 :(得分:1)

我建议您在模板中使用Iron-Router pathFor帮助

<a href="{{pathFor 'template-name'}}">{{buttonText}}</a>

这会将用户重定向到相应的页面/模板。

您还应该查看new blaze pattern to define custom block helper

修改 您还可以使用自定义帮助程序进行动态路由here

UI.registerHelper("_foo", function fooHelper() {
  var templateName = figureOutNameDynamically(this.context.criticalInfo);
  return Template[templateName];
});

<template name="foo">
  {{> _foo context=.. atts=this}}
</template>

答案 2 :(得分:0)

你可以这样做/使用动作选项更改路线,该选项会自动调整this.render()。 你可以通过调用动作函数自己做,但我想最好使用onBeforeAction / after hooks