2015-12-28 15 views
8

Bir özel öğe adlı özel eleman ve ben (kontrolör A ile) şablonu A'nın içine koymakAurelia: Özel elemanın dışında bir işlev nasıl çağırılır?

custom-element

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

Ve updateDescription() kontrolör A. biri fonksiyonudur var

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

Özel öğe kullanarak updateDescription() nasıl çağırılır?

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

aramak için:

cevap

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

Sonra

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

çağrı CustomElemthis.onCompleted()

+0

Sadece bu denenmiş ve ne yazık ki, iyi çalışıyor iken, yürütme içeriği ebeveyn VM mülklerin hiçbirinin anlamı, özel kontrollü kalır erişilebilir. Bu kodu, özel denetimin içine genişletmek istiyorsanız, ancak müşterinin, kendi VM'si içinde yer alan kodu, denetim temelinde bir denetimde tanımlamasına izin vermek için iyi bir yoldur. – shawty

+0

@shawty updateDescription içinde dışsal bir içeriğe ihtiyacınız varsa, her zaman bir kapatma oluşturmak mümkündür. Bazen iyi bir çözüm olabilir – valichek

18

özel elemana bir işlev çağrısı bir başvuru vermek call bağlanma komutu kullanın updateDescription m argümanlarla bu yöntemde, aşağıdakileri yapabilirsiniz:

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

"updateDescription" öğesini argümanlarla çağırmak ve sonucu 'CustomElem' içinde kontrol etmek mümkün mü? – valichek

+2

evet- cevabını bu –

+0

ile nasıl yapılacağı hakkında güncelledi Bu resmi belgelerin bir parçası olmalı. – nym

İlgili konular