Aurelia中具有相同模块的多个视口

时间:2015-10-21 19:44:25

标签: aurelia aurelia-router

我有一个类似于以下内容的应用模板:

<template>
    <require from='./templates/header'></require>
    <require from='./templates/navigation'></require>

    <header user.bind="user"></header>
    <navigation></navigation>

    <router-view name="heading"></router-view>

    <div class="page-container>
        <div class="page-content">
            <router-view class="content-wrapper"></router-view>
        </div>

        <div class="footer">
            Copyright etc.
        </div>
    </div>
</template>

我已将路由器配置为使用2 <router-view>元素的视口。但是我不想使用2个不同的模块。我想为两个视口使用相同的模块,只有不同的视图。我们的想法是模块控制页面上的多个部分。我设法通过在视口配置上指定view属性来实现这一点:

config.map([
    { 
        name: 'dashboard', 
        route: 'dashboard', 
        viewPorts: { 
            default: { moduleId: './views/dashboard' }, 
            heading: { moduleId: './views/dashboard', view: './views/heading.html' } 
        }, 
        nav: true, 
        title: 'Dashboard' 
    }
]);

这个问题是模块被激活两次,这将导致不必要的处理,因为我已经拥有了我第一次需要的所有信息。有没有办法可以配置视口为同一个模块(实例)使用不同的视图?

1 个答案:

答案 0 :(得分:0)

默认情况下,Aurelia的所有课程都被Aurelia的依赖注入容器视为单身人士。使用示例代码,您的类只会被实例化一次 - 因此构造函数或激活事件中的任何处理代码只会出现一次。