Получить ViewModel безконтейнерного элемента
В Aurelia, когда я хочу получить доступ к модели представления элемента DOM, который является пользовательским элементом aurelia, я могу использовать au
собственность, которую придает Аурелия, как componentElement.au.controller.viewModel
,
Когда мой пользовательский элемент без контейнера (атрибут @containerless
на уровне класса) собственность au
не доступен.
Эта суть демонстрирует это: https://gist.run/?id=928f97f49c01c1db10d8bf4399f5c335
Как я могу получить доступ к модели представления пользовательского компонента без контейнера, когда у меня есть только ссылка на его элемент DOM?
2 ответа
Я не уверен, что это то, что вы хотите, но вы можете использовать view-model.ref
, Например:
<less-comp text="item three, containerless" view-model.ref="test"></less-comp>
Использование:
export class App {
attached() {
console.log(this.test);
}
}
Достигните того, чего вы хотите, подключив created
Жизненный цикл в вашей модели зрения:
class ViewModel {
created(owningView, view) {
view.controller
view.controller.viewModel // <-- this is what you want
}
}