Meteor - 当传递变量时,Router.go()不会运行

时间:2015-06-09 10:38:09

标签: templates meteor static path iron-router

我有一个我一直在重复使用的后退按钮的模板:

<template name="btnBack" label="" path="">
    <a href="" data-path="{{path}}" class="btn btn-info btn-small" role="button">
        <span class="glyphicon glyphicon-menu-left" aria-hidden="true"></span> {{label}}
    </a>
</template> 

我将两个字段labelpath静态传递给它。

我的目的是将静态path字段传递给Iron-Router以更改呈现的模板。

href设置为{{pathFor '{{path}}'}}不起作用。 也没有将属性onclick定义为Router.go('{{path}}')

在我的第三次尝试中,我将路径传递给数据属性: data-path="{{path}}"

然后我从模板助手中引用这个属性:

Template.btnBack.events({
  'click a': function(event, template) {
    var path = ''+event.target.dataset.path;
    console.log(path); 
    Router.go(path); 
  }
});

console.log语句正确运行,并在Google Chrome控制台窗口中输出静态定义的路径。

Router.go然而,什么都不做 - 它甚至不会在控制台中为错误的路径引发错误。

以下是我实例化模板的方法: {{> btnBack label="Back" path="home"}}

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您可以尝试设置链接

<template name="btnBack" label="" path="">
    <a href="{{ pathFor path }}" class="btn btn-info btn-small" role="button">
        <span class="glyphicon glyphicon-menu-left" aria-hidden="true"></span> {{label}}
    </a>
</template>