2015-12-28 14 views

risposta

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

Poi

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

all'interno CustomElem chiamata this.onCompleted()

+0

appena provato questo, e, purtroppo, mentre funziona bene, il contesto di esecuzione rimane con il controllo personalizzato, il che significa che nessuna delle proprietà nel genitore VM sono accessibili Questo è un buon modo per fare le cose se si desidera estendere il codice all'interno del controllo personalizzato, ma consentire al consumatore di definire il codice che lo fa all'interno della propria VM su base controllo per controllo. – shawty

+0

@shawty se hai bisogno di un contesto esterno dentro updateDescription è sempre possibile creare una chiusura. A volte potrebbe essere una buona soluzione – valichek

18

utilizzare il comando vincolante call per dare un riferimento a una chiamata di funzione per il vostro elemento personalizzato:

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

Per chiamare il updateDescription m etodo con argomenti, è possibile effettuare le seguenti operazioni:

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> 
+0

È possibile chiamare 'updateDescription' con gli argomenti e controllare il risultato in' CustomElem'? – valichek

+2

si- aggiornato la risposta con informazioni su come farlo –

+0

Questo deve essere parte della documentazione ufficiale. – nym

Problemi correlati