Supponiamo di creare un piccolo componente che accetta un input e imposta un'etichetta per mostrarlo.Come faccio a iniettare un componente personalizzato da js in nativescript?
app/components/TestComponent/testComponent.xml:
<Label id="someLabel" loaded="onLoad"/>
app/componenti/TestComponent/testComponent.js:
exports.onLoad = args => {
const obj = args.object;
const label = obj.getViewById('someLabel');
label.text = obj.someString || 'no string given';
};
Ora posso usare questo componente in qualsiasi delle mie pagine
<Page xmlns="http://schemas.nativescript.org/tns.xsd"
xmlns:testComponent="components/testComponent">
<StackLayout>
<testComponent:testComponent someString="hello {N}"/>
</StackLayout>
</Page>
Questo sembra essere il modo ufficiale per farlo e funziona. Ma c'è un modo per iniettare questo componente nella pagina usando solo javascript?
Questo codice non ha nulla a che fare con NativeScript. Questo sembra essere il codice basato sul browser ... – Nathanael
Ti suggerisco quando chiedi una soluzione solo javascript impari a riconoscere javascript come effettivamente javascript e non il vago termine 'codice basato sul browser'. Come puoi volere una soluzione javascript che in realtà non sia javascript? Mentre la risposta sopra sembra ok, non è puro javascript e viene creato sul caricamento della pagina non iniettato – Datadimension
La richiesta era su come eseguire il caricamento di componenti personalizzati specificatamente in NativeScript tramite JavaScript. NativeScript non è un browser e in quanto tale, ad esempio $ (da JQuery) non funzionerà. Inoltre, il sistema di creazione dello schermo in NativeScript non ha un DOM tradizionale; significa che anche il codice JavaScript completamente valido progettato per un browser non funzionerà su di esso. Questo chiarisce perché ho detto il codice basato su browser? – Nathanael