Я использую Webpack 3 для объединения двух отдельных приложений Aurelia на одной странице.
Один является основной частью приложения и использует стандартный setRoot
метод:
export function configure(aurelia) {
aurelia.use
.standardConfiguration()
.feature(PLATFORM.moduleName('resources/index'));
aurelia.start().then(a => {
aurelia.setRoot(PLATFORM.moduleName('shells/app'),
document.getElementById('AppBodyContainer'));
});
}
Другой использует метод расширения в старом представлении MVC
const enhanceNode = (app, node, bindingContext = null) => {
const engine = app.container.get(TemplatingEngine);
const component = engine.enhance({
container: app.container,
element: node,
resources: app.resources,
bindingContext: bindingContext
});
component.attached();
};
export function configure(aurelia) {
aurelia.use
.standardConfiguration()
.feature(PLATFORM.moduleName('resources/index'));
aurelia.start().then(a => {
enhanceNode(a, document.getElementById('HeaderContainer'));
});
}
Оба являются автономными приложениями aurelia, и оба используют веб-пакет AureliaPlugin
new AureliaPlugin({
aureliaApp: 'header-app'
}),
Проблема в том, что, когда оба они находятся на одной странице, отдельная версия aurelia-binding
мешает друг другу, что означает, что все, что связано с click.delegate
, запускается дважды при нажатии.
Что я делаю не так?