Iron:路由器在更改路由器上添加事件

Iron:Router add events on change router

本文关键字:路由器 添加 事件 Iron      更新时间:2023-09-26

我想在不同的当前路由上添加classe。

我的脚本:

Template.layout.rendered({
    rowClass: function() {
        var blockGridContent = [
            'blogPostDetail',
            'contact'
        ];
        // Si on est sur l'une des pages de 'blockGridContent'
        if (_.contains(blockGridContent, routeCurrent)) {
            return 'block-grid';
        }
    }
})

此代码运行良好,但仅在加载时运行。如果我进入"测试"并更改页面,则类仍然存在。

我想我必须从服务器或熨斗上检查:路由器,但我不知道怎么做。

你知道吗?

谢谢!:)

尝试从组件内部访问当前路由是一种糟糕的做法,这会使它们更难维护。相反,您应该向他们传递所有需要的数据。

在您的情况下,您可以使用控制器的data方法来实现您所需要的:

BlockGridController = RouteController.extend({
  ...
  data: function() {
    return {
      ...
      layout: {style: 'block-grid'},
    };
  },
});

然后在布局模板中访问它:

<div class="{{layout.style}}">