【发布时间】:2015-06-09 10:38:08
【问题描述】:
我有一个我一直在重复使用的后退按钮的模板:
<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>
我静态地传递了两个字段label 和path。
我的意图是将静态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"}}
我做错了什么?
【问题讨论】:
-
在
var path=..之前添加event.preventDefault() -
成功了,谢谢!是否需要调用 event.preventDefault() 来阻止链接尝试重定向到
href(空白)? -
如果
a定义了href属性,您需要调用 preventDefault。
标签: templates meteor static path iron-router