Search code examples
aurelia

How to access composed children?


I have a list of composed elements:

<compose repeat.for="foo of someList" view-model="./bar" model.bind="foo">

Now, from the parent, I would like to call a function on a specific bar view model. How do I do that?


Solution

  • You can add view-model.ref in your compose tag:

    <compose repeat.for="foo of someList" view-model="./bar" model.bind="foo" view-model.ref="foo.barviewmodel">
    

    You can replace view-model.ref by compose.ref. The both give the same result.

    And in the parent you can call a function on a bar view model like this:

    this.someList[2].barviewmodel.currentViewModel.action();
    

    It works, but I don't know if it's a public api. See this issue for more details