【问题标题】:Override layout template in iron-router Meteor在 Iron-router Meteor 中覆盖布局模板
【发布时间】:2019-03-01 19:50:19
【问题描述】:

我有一个使用铁路由导航的流星应用程序。我有一个在每一页上呈现的布局文件。虽然有一个页面我不希望显示/渲染布局文件。我敢打赌,有一种优雅的方式可以实现这一点,但不幸的是我还没有找到。

Router.configure({
    layoutTemplate: 'layout',
    loadingTemplate: 'loading',
    notFoundTemplate: 'notapage'
});
Router.route('dataNotFound', function() {
    this.render('notapage');
});
Router.route('test/qwerty', function() {
    this.render('abc');
}, {

name: 'abc',
waitOn: function() {
    return [
        Meteor.subscribe('testSubscription')
    ];
}

});

布局文件:

<template name="layout">
<nav class="navbar navbar-default navbar-fixed-top">
    ...
</nav>
    <div class="clearfix"></div>
    <div class="page-container">
        {{>yield}}
    </div>
<div class="page-footer">
    ...
</div>

如果路由等于 abc,我不希望 layout.html 文件被渲染/显示。

【问题讨论】:

  • 您可能应该切换到流路由器,它已被广泛使用且可用于生产。它具有开箱即用的功能,可让您轻松实现您想要的(例如在每条路线上准确呈现您想要的):atmospherejs.com/kadira/flow-router

标签: meteor iron-router


【解决方案1】:

您可以覆盖单个路由定义的默认布局文件,请参阅:http://iron-meteor.github.io/iron-router/#layouts

Router.route('/post/:_id', function () {
   this.layout('ApplicationLayout');
});

该文档还描述了如何将模板渲染到同一布局模板中的不同产量区域。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-23
    • 2014-05-19
    • 2015-03-12
    • 2014-01-04
    • 2015-12-22
    • 2015-08-31
    • 2014-01-16
    相关资源
    最近更新 更多