铁路由器:pathFor:我想从地图生成一个URL

时间:2014-08-01 02:06:40

标签: meteor iron-router

我有一个导航栏小部件,可以生成顶级导航的链接。

当这组页面用于联盟领导者时,铁路由器路径看起来像:

'/alliance/:allianceId/players'

对于常规玩家看常规玩家导航栏​​中的铁路由器路径如下:

'/player/:playerId/inventory'

我希望导航栏不关心路由参数是什么。我希望导航栏模板只取一个值映射

<template name="navbar">
    <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation"> <!--   -->
        <ul class="admin-tabs">
            {{#each routes}}
                <li class="{{tabActiveClass}}"><a href="{{pathFor pageName data=data}}">
                    <i class="glyphicon {{additionalClass}}"></i>&nbsp; {{displayName}}</a>
                </li>
            {{/each}}
            <li>
                {{> loginButtons}}
            </li>
        </ul>
    </nav>
</template>

使用

_.extend(Template.navbar, {
    ...
    data: function() {
        var routeController = Router.current(true);
        if ( routeController == null){
            return void(0);
        } else {
            debugger;
            return routeController.params;
        }
    },

    ...
});

但是,这不起作用。有没有人建议如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我相信你应该包装你的代码:

{{#with data}}
  ...
{{/with}}

或使用params=data代替data=data