Я отметил ответ Фреда Клёвера как ответ, потому что я чувствую, что его пути, хотя их труднее реализовать, вероятно, намного мощнее.Но также вам нужно понимание внутренней работы фреймворка.В конце концов, я реализовал хакерский способ решения своей проблемы.Я создал пользовательский элемент с именем navigate-to-page-link
.
navigate-to-page-link.ts
import { bindable, autoinject } from 'aurelia-framework';
import { Store } from 'aurelia-store';
import { State } from '@src/state/state';
import { MenuStateActions } from '../menu-state';
@autoinject()
export class NavigateToPageLink{
@bindable route: string;
@bindable name: string;
constructor(private store: Store<State>){}
closeMenu(){
this.store.dispatch(MenuStateActions.close);
return true;
}
}
navigate-to-page-link.html
<template>
<a route-href="route.bind: route" click.delegate="closeMenu()" class="menu-item">${name}</a>
</template>
Итак, в основном я использую aurelia-store
, чтобы открывать и закрывать мое меню.Кроме того, мне нужно return true
из метода click.delegate
для навигации по ссылке href
.
Внутри моего меню я использую этот элемент следующим образом:
<require from="./navigate-to-page-link"></require>
<navigate-to-page-link route="home" name="Home"></navigate-to-page-link>