Ho un elemento personalizzato che ospita esso stesso un elemento personalizzato.Come accedere all'host di un elemento personalizzato
<polymer-element name="flex-nonvisual">
<template>
<polymer-flex-layout></polymer-flex-layout>
</template>
</polymer-element>
Ora, in attached()
(o qualche altro callback) di PolymerFlexLayout
voglio impostare l'attributo class dell'elemento flex-nonvisual
.
in javascript il codice è simile this.parentNode.host.classList.add('someclass');
In Dart in attached()
(dopo la chiamata a super.attached()
) this.parent
è null e non ho potuto trovare qualsiasi altro riferimento all'elemento ospite.
Come posso farlo in Dart?
Una piccola osservazione: vorrei prendere in considerazione questa cattiva pratica da quando si rompe l'incapsulamento del componente polimerico-flex-layout. In generale, un componente figlio non dovrebbe mai impostare proprietà o invocare metodi su un genitore. Il bambino dovrebbe inviare un evento che il genitore può ascoltare e decidere di cambiare le sue proprietà. –
Hai ragione, non ho pensato a modi alternativi.Attualmente sto eseguendo il porting di elementi polimerici da Javascript e ho appena provato a fare lo stesso in Dart quello che hanno fatto in JS.Grazie molto per il tuo aiuto dalla corsia cieca ;-). –