我有一个类似于以下内容的应用模板:
<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'
}
]);
这个问题是模块被激活两次,这将导致不必要的处理,因为我已经拥有了我第一次需要的所有信息。有没有办法可以配置视口为同一个模块(实例)使用不同的视图?
答案 0 :(得分:0)
默认情况下,Aurelia的所有课程都被Aurelia的依赖注入容器视为单身人士。使用示例代码,您的类只会被实例化一次 - 因此构造函数或激活事件中的任何处理代码只会出现一次。