Meteor - 尝试根据路径动态地将模板包含到另一个模板中

时间:2015-03-18 08:00:41

标签: meteor iron-router meteor-blaze

我正在尝试在另一个模板中包含基于路径的模板。我让它或多或少地工作但仍然有一些问题,也许这里有人可以让我走上正确的道路。

我已经使用

{{> UI.dynamic template=route }}

使用帮助程序来解析URL并返回正确的模板名称,但是我有几个问题:

1)当我点击一个链接时,Iron :: Router会识别出这个变化,但模板并没有意识到这一点 - 就像它没有重新加载一样,即使我点击静态链接也是如此。

2)Iron :: Router有一个捕获所有主要请求并将其传递给正确模板的全能,但是如果我有以下路径,我会得到未找到的页面,例如:

/settings  -> works
/settings/profile -> 404

我的一切都是这样的:

this.route("/:path?", function() {

});

1 个答案:

答案 0 :(得分:0)

尝试使用此帮助程序获取当前路径名称。

UI.registerHelper("currentRouteName",function(){
    return Router.current()?Router.current().route.getName():"";
});

然后你可能需要做类似的事情:

var thisRoute = Router.current().route.getName().split("/")

并匹配您正在寻找的路线

'/' + thisRoute[1] + '/';

助手来自 meteor js iron router: apply CSS change whenever route changes并适用于css但可能有助于查看您的用例。