Вы можете установить свойства экземпляра в обоих конструкторах и активировать методы, оба они будут вызваны Aurelia. Однако здесь есть своего рода концептуальная разница.
Активация является одним из методов жизненного цикла активации экрана и в идеале должна использоваться для управления только режимом экрана/представления. Например, метод canDeactivate
контролирует, можно ли просматривать модель модели просмотра и т. Д. Активировать - это также крючок, который выполняется непосредственно перед визуальной моделью (но до attached
). Однако возможно, что метод activate
никогда не будет вызван, скажем, маршрут перемещается в конструкторе или canActivate
методы отклоняют/возвращают false - в этом случае конструкция все равно будет вызываться, но активировать не будет.
С другой стороны, метод construct
вызывается перед любыми другими крючками и методами, поэтому он вызывается до activate
. По этой причине конструкция является основным местом для настройки свойств конфигурации, поскольку она требует инъекций зависимостей. Таким образом, при активации принимает фиксированный набор параметров (params, routeConfig, navigationInstruction), список параметров, переданный методу constructor
, зависит от того, какие услуги вы вводите в свой класс модели представлений.
Я не могу найти документацию на сайте Aurelia, которая говорит об активации() или «canActivate()». Где эта информация? – lux
Документация Aurelia по-прежнему довольно плохая. Но вы можете найти информацию здесь: https://github.com/aurelia/documentation/blob/master/English/docs.md#the-screen-activation-lifecycle – dfsq
@dfsq: ваша ссылка не работает ... –