Chu Văn Nam
Chu Văn Nam

Reputation: 121

Aurelia: How to call a function outside custom element?

I have one custom element named custom-element and I put it inside template A (with controller A)

custom-element

export class CustomElem {
  @bindable onCompleted;
  ........
}

And updateDescription() is one function of controller A.

export class A {
  updateDescription(){
    ....
  }
}

How to call updateDescription() by using custom-element?

Upvotes: 11

Views: 4469

Answers (2)

Jeremy Danyow
Jeremy Danyow

Reputation: 26406

Use the call binding command to give a reference to a function call to your custom element:

<custom-element on-completed.call="updateDescription()"></custom-element>

To call the updateDescription method with arguments, you can do the following:

export class CustomElem {
  @bindable onCompleted;

  ...

  fooBarBaz() {
    var args = {
      something: 'A',
      somethingElse: 'B',
      anotherArg: 'C'
    };
    this.onCompleted(args);
  }
}
<custom-element on-completed.call="updateDescription(something, somethingElse, anotherArg)"></custom-element>

Upvotes: 22

valu
valu

Reputation: 1196

export class A {
  updateDescription = () => {
  };
}

Then

<custom-element on-completed.bind="updateDescription"></custom-element>

inside CustomElem call this.onCompleted()

Upvotes: 2

Related Questions