meteor应用程序:如何正确使用按钮影响路线

meteor应用程序:如何正确使用按钮影响路线,meteor,Meteor,我正在开发一个调查/向导类型的meteor应用程序。 该界面将只有两个导航按钮,谁的标题/值将根据给定用户当前所处的步骤动态确定。 我的问题是:在这两个按钮的定义中,我应该使用什么标记语法来指示Iron路由器更改路由。换句话说,我应该在按钮定义中的什么位置放置:this.redirect(“/anotherpath”)?我建议您在模板中使用pathForhelper <a href="{{pathFor 'template-name'}}">{{buttonText}}</a&

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

我建议您在模板中使用
pathFor
helper

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

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

你还应该看看

编辑: 如前所述,您还可以为动态路由使用自定义帮助器

UI.registerHelper(“\u-foo”,函数fooHelper(){
var templateName=FigureOutNameDynamics(this.context.criticalInfo);
返回模板[templateName];
});
{{>{u foo context=…atts=this}
我建议您在模板中使用
pathFor
帮助程序

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

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

你还应该看看

编辑: 如前所述,您还可以为动态路由使用自定义帮助器

UI.registerHelper(“\u-foo”,函数fooHelper(){
var templateName=FigureOutNameDynamics(this.context.criticalInfo);
返回模板[templateName];
});
{{>{u foo context=…atts=this}

您可以使用操作选项执行此操作/更改路由,该选项将自动校准this.render()。
您可以通过调用action函数自己完成,但我想最好使用onBeforeAction/after hooks

您可以通过使用action选项来完成此操作/更改路由,该选项将自动校准this.render()。
您可以通过调用action函数自己完成,但我想如果模板中有一个按钮,那么最好使用onBeforeAction/after钩子。如果您使用的是hrefs,请检查来自f3rland的答案

html:

路由器应如下所示:

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

    layoutTemplate: 'myLayout',

    controller: myController
  });
});

如果模板中有一个按钮。如果您使用的是hrefs,请检查来自f3rland的答案

html:

路由器应如下所示:

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

    layoutTemplate: 'myLayout',

    controller: myController
  });
});

这很有效!我对determineNextStep()进行了函数调用,以代替“另一个路径”。determineNextStep()现在将基于持久导航映射模型对象的值动态计算下一步,并将返回适当的路径字符串,该字符串将从“NextStep”模型字段中获取。这非常有效!我对determineNextStep()进行了函数调用,以代替“另一个路径”。determineNextStep()现在将基于持久导航映射模型对象的值动态计算下一步,并将返回相应的路径字符串,该字符串将从“NextStep”模型字段中获取
Router.map(function() {
  this.route('anotherpath', {
    path: '/',

    layoutTemplate: 'myLayout',

    controller: myController
  });
});