iron:路由器语法布局

时间:2016-03-23 16:28:01

标签: layout router iron

我正在使用铁路由器在流星框架中渲染模板,因为我可能正在关注一个过时的教程,在我看来,我无法弄清楚语法的变化。

的layout.html

<div class="container">
    <div class="row">
        <div class="span2">
            <p>cell</p>
        </div>
            <div class="span7">
                <p>cell</p>
            </div>
                <div class="span3">
                    <p>cell</p>
                </div>
    </div>
</div>

index.js

function.setDefault ('category', null );
Router.configure({
    layoutTemplate:'layout',
    yieldTemplates:{
        'products':{to:'products'},
        'cart':{to:'cart'},
        'categories':{to:'categories'}
    }
    });
Router.route(function(){

    this.route('/', layout);
    this.route('/products',{
        data:function(){
            Session.set('category',this.params.name);

    },
    template:'layout',
    path:'/:name'
    })
});

发生以下错误 意外的令牌(1:8)

1 个答案:

答案 0 :(得分:0)

如果你有一个Router.route并在一个函数中使用this.route,那么Router.route应该读取Router.map但不推荐使用Router.route(没有map包装器),如下所示:

Session.setDefault ('category', null );           

Router.configure({ 
    layoutTemplate:'layout', 
    yieldTemplates:{ 
        'products':{to:'products'}, 
        'cart':{to:'cart'}, 
        'categories':{to:'categories'} 
    } 
}); 
//You will need to declare a template at the least here so it knows what to render to main area
Router.route('/', {template: "template_name"); 
Router.route('/products/:name',{ 
    onBeforeAction:function(){ 
        Session.set('category',this.params.name); 
        this.next ();
    }, 
    //you don't need this to be layout
    //as you are defining a default layout above 
    //but you will need to specify a template for the main yield area
    template:'template_name'
    // you don't need to specify path here as it will use '/products'
    //if you want to specify a route name use line below
    //,name: 'routename'
});

其中url为/products/product_name

template_name是您要在主{{> yield}}

中呈现的模板

在您的布局模板中,您需要在您想要显示它们的地方放置以下内容

{{> yield 'products'}}
{{> yield 'categories'}}
{{> yield 'cart'}}
{{> yield }} //this is the template you specify in template: 'template_name'

(从我的手机上完成,因此无法测试,但如果它不适合您可以稍后更新)