Aurelia - 嵌套组件的调用函数

mgi*_*esa 8 aurelia

我想从其父级调用子组件的函数.我有办法做到这一点,但我想知道我是否错过了更好的方法.

从Ashley Grant 关于从自定义属性访问自定义元素的viewModel 的博客文章中,我看到Aurelia添加au了元素,您可以通过它访问viewModel.所以,如果我添加一个带有ref的嵌套组件,如下所示:

<template>
    <nested-element ref="childElement"></nested-element>
</template>
Run Code Online (Sandbox Code Playgroud)

我可以这样调用一个函数:

this.childElement.au.controller.viewModel.someFunction();
Run Code Online (Sandbox Code Playgroud)

这感觉很迂回.我希望我能够通过参数访问嵌套元素的viewModel到父实现的钩子,例如created(owningView, myView)但我找不到它的路径.

我错过了更好的方法吗?

编辑:我忘了添加我需要从我正在调用的函数返回值,因此访问viewmodel本身是可取的

Jef*_*f G 11

ref给你元素.view-model.ref为您提供元素的视图模型.

<template>
    <nested-element view-model.ref="childViewModel"></nested-element>
</template>
Run Code Online (Sandbox Code Playgroud)

在父视图模型中像这样调用它:

this.childViewModel.someFunction();
Run Code Online (Sandbox Code Playgroud)