2016-04-26 6 views
0

Ich habe ein benutzerdefiniertes Element auf meiner Seite und muss auf eine Variable in der app.js vom benutzerdefinierten Element zugreifen. Ist der einzige Weg, um die Daten, die ich brauche, an das benutzerdefinierte Element zu binden?Wie greife ich auf Variablen in benutzerdefinierten Elementen in Aurelia zu?

<custom-element data.bind="data"></custom-element> 

Der Grund, warum ich frage ist, dass ich eine Schleife leite mehrere benutzerdefinierte-Elemente zu erstellen und will nicht 5 Variablen zu jedem benutzerdefinierten Elemente binden, so. Frage nur, ob es einen anderen Weg gibt?

+0

benutzerdefinierte Elemente haben keinen Zugang zum äußeren Umfang. Also würde ich nein sagen. Sie könnten Ihre benutzerdefinierten Elemente mit rendern, die Zugriff auf den äußeren Bereich hat. –

+0

Bah, das wollte ich nicht machen. Kann ein Abonnement funktionieren? Ich habe keine Ahnung, wie man einen tut, aber ich sah etwas auf der Aurelia-Website docs. \ R \ n \ r \ n – seroth

+0

Das hängt davon ab, was Sie tun möchten, aber ich denke, Bindung jedes der Elemente ist der richtige Weg, es zu tun –

Antwort

2

Die Vorlage eines benutzerdefinierten Elements kann nicht auf den äußeren Bereich zugreifen. Dies ist ein Design. Es stellt sicher, dass benutzerdefinierte Elemente portabel sind. Dies spiegelt die Funktionsweise von Standardelementen wie <div>, <a> usw. wider. Sie können diese Elemente überall verwenden. Die einzige Möglichkeit, um Daten zu übermitteln, ist über ihre Attribute.

Wenn Sie fest Paar Ihre individuelle Element der Außenansicht Modell möchten, können Sie etwas tun:

<custom-element app.bind="$this"></custom-element> 

aber dies wird nicht empfohlen,

+1

Jeremy, du hast vergessen hinzuzufügen "aber das ist nicht zu empfehlen." –

Verwandte Themen