2016-04-05 9 views
1

Ich beginne mit dem Standard-TypeScript-Skelett für meine Aurelia-Entwicklung.Unterschied zwischen HTML-Komponente und einer normalen Komponente in Aurelia?

Ich wollte der "nav-bar" -Komponente etwas Code hinzufügen, also entschied ich mich, es von einer einfachen HTML-only-Komponente in eine reguläre Komponente zu konvertieren. Zu diesem Zweck geändert, ich die erfordern Tag in meinem app.html aus:

<require from="nav-bar.html"></require> 

zu

<require from="nav-bar"></require> 

Als nächstes habe ich eine nav-bar.ts-Datei, die den folgenden Code enthalten :

Ich verließ die nav-bar.html genau wie es ist. Jetzt läuft das Programm und die Konsole enthält den TEST-Wert aus der instanziierten NavBarClass, ABER Das Menü, das angezeigt wurde, wenn die Navigationsleiste HTML-only war, fehlt jetzt.

Wie bekomme ich das Menü zurück? Was mache ich falsch? Wie unterscheidet sich eine reguläre Komponente von einer reinen HTML-Komponente?

Danke für Ihre Hilfe, -Greg

+0

zeigen nav-bar.html, app.js und App .html. Vermutlich vermisst du irgendwo etwas. –

+0

@FabioLuz, die nav-bar.html und app.ts Dateien sind Lager von der Skelett-App, hier: https://github.com/aurelia/skeleton-navigation/tree/master/skeleton-typescript/src –

Antwort

7

In einem Standardelement benutzerdefinierten die bindungsfähigen Eigenschaften im View-Modell definiert sind:

nav-bar.js:

export class NavBar { 
    @bindable router; 
    ... 
    ... 
} 

In einem benutzerdefinierten html-Element gibt es kein Ansichtsmodell, daher sind die bindbaren Eigenschaften im <template>-Element des Elements bindable aufgeführt:

nav-bar.html:

<template bindable="router"> 
    ... 
    ... 
</template> 

So oder so die nav-Bar Element Nutzung das gleiche ist:

<nav-bar router.bind="router"></nav-bar> 
Verwandte Themen