Я бы хотел добавить один маршрут к маршруту, чтобы новый экземпляр создавался каждый раз, когда пользователь повторно входит в маршрут. Я думал, что смогу зарегистрировать экземпляр в (автоматически созданном) дочернем контейнере в модели представления маршрута, но я получаю ошибку:
ОШИБКА [app-router] ReferenceError: Невозможно получить доступ к SomeOtherClass до инициализации
Как зарегистрировать синглтон в контейнере маршрута, чтобы он охватывался только этим маршрутом?
Моя виртуальная машина маршрута выглядит как
import {autoinject, Container} from 'aurelia-framework';
import {SomeOtherClass} from '...some-other-class'; // The actual relative path
@autoinject
export class SomeRoute {
constructor(private container: Container) {
container.registerInstance(SomeOtherClass);
}
}
Класс, который я хочу зарегистрировать, автоматически внедряется в различные компоненты маршрута. Этот класс выглядит как
import {autoinject} from 'aurelia-framework';
@autoinject
export class SomeOtherClass {
constructor(private dep1: Dep1, private dep2: Dep2) {
// Stuff that I want to re-run every time the user (re)enters the route
}
}
, а другие классы просто внедряют его так:
import {autoinject} from 'aurelia-framework';
import {SomeOtherClass} from '...some-other-class'; // The actual relative path
@autoinject
export class SomeComponent {
constructor(someOtherClass: SomeOtherClass) {
// Use the singleton instance within this route
}
}