Получить 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
  }
}
Другие вопросы по тегам