Ich habe ein benutzerdefiniertes Attribut, das der bindingContext
eine Eigenschaft hinzufügt, damit andere benutzerdefinierte Attribute/Elemente diese Daten verwenden können.Aurelia-Wiederholung scheint benutzerdefinierte Eigenschaften im übergeordneten Bereich zu löschen
das Attribut bind Methode kann also zum Beispiel wie folgt aussehen:
bind(binding, scope) {
binding.someCustomProperty= this.value; // have tried using scope too
}
nun im Rahmen dieses benutzerdefinierten Attributs enthalten alles funktioniert einwandfrei, das heißt:
<section my-attribute="something">
<input some-other-attribute="somethingElse">
</section>
So ist der Abschnitt setzt Attribut unter der Annahme, Die bindingContext
Eigenschaft, dann würde die some-other-attribute
Zugriff auf diese Eigenschaft auf der bindingContext
und es würde alles funktionieren.
Allerdings kommt das Problem, wenn ich eine Wiederholung verwenden und die some-other-attribute
innerhalb der Bindung wiederholen möchten, verliert die bindingContext
die someCustomProperty
. Gibt es also eine "richtige" Möglichkeit, einen Bindungskontext hinzuzufügen und durch wiederholte oder andere untergeordnete Bindungen zu bestehen?
Ah brillant, geben, dass ein zu gehen, so standardmäßig tun alle Kontexte haben Zugriff zu ihren Eltern (wie gezeigt)? – Grofit
rechts, wenn Sie etwas tun wie 'foo.bind =" bar "', wird das Bindungssystem nach 'bar' auf dem overrideContext suchen, dann auf dem bindingContext, dann auf dem übergeordneten overrideContext, dann auf dem übergeordneten bindingContext, und so weiter. –
Nicht alle Kontexte haben Zugriff auf ihre übergeordneten Elemente. Ein benutzerdefiniertes Element hat beispielsweise keinen parentOverrideContext. Dadurch bleiben benutzerdefinierte Elemente gekapselt und portabel. Sie können nicht auf den äußeren Bereich zugreifen. –