0

在 Aurelia 中,当我想访问作为 aurelia 自定义元素的 DOM 元素的视图模型时,我可以使用auAurelia 附加的属性,例如componentElement.au.controller.viewModel.

当我的自定义元素是无容器的(@containerless类级别的属性)时,该属性au不可用。

这个要点证明了这一点: https ://gist.run/?id=928f97f49c01c1db10d8bf4399f5c335

当我只有对其 DOM 元素的引用时,如何访问无容器自定义组件的视图模型?

4

2 回答 2

1

我不确定这是否是您想要的,但您可以使用view-model.ref. 例如:

<less-comp text="item three, containerless" view-model.ref="test"></less-comp>

用法:

export class App {
  attached() {
    console.log(this.test);
  }
}
于 2017-08-18T12:48:35.183 回答
0

created通过在视图模型中挂钩生命周期来实现您想要的:

class ViewModel {
  created(owningView, view) {
    view.controller
    view.controller.viewModel // <-- this is what you want
  }
}
于 2017-08-18T10:49:06.300 回答