В рамках проекта Aurelia у меня есть модель представления, что я хочу поддерживать состояние между навигацией маршрутизатора. Я думал, что добавление @singleton()
к моему классу модели представления выполнит это.Aurelia Singleton View model
Фактически, я создал простой проект Aurelia, где это работает. Я могу перемещаться в сторону и обратно на ту же страницу, и состояние сохраняется. Мой конструктор называется только первым, когда я перехожу к этой странице.
import { singleton } from 'aurelia-framework';
@singleton()
export class Welcome {
heading = 'Welcome to the Aurelia Navigation App!';
constructor() {
console.log('constructor');
}
activate() {
console.log('activate');
}
attached() {
console.log('attached');
}
}
Однако в моем более крупном приложении это не работает. Я добавляю декоратор, и конструктор моей модели представления по-прежнему называется вторым, когда я перехожу к этой странице. (Я даже скопировал эту модель представления в мое более крупное приложение и не рассматривался как синглтон.)
Очевидно, что между этими двумя проектами должно быть что-то другое. Однако я не вижу никакой разницы. Есть ли настройка, которую я мог бы установить, чтобы переопределить поведение @singleton()
?
https://github.com/aurelia/dependency-injection/issues/65 –