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