Ich versuche eine Menüleiste mit PrimeNG zu erstellen, basierend auf einem Beispiel aus Ссылка
Ich erstelle so etwas:
app.component.ts
%Vor%menubardemo.components.ts
%Vor%Nachdem ich ausgecheckt habe, wird das Datenobjekt auf dem DOM gedruckt, aber die Menüleiste wird nicht angezeigt.
UPDATE:
index.html
%Vor%package.json
%Vor%tsconfig.json
%Vor%systemjs.config.js
%Vor%typings.json
%Vor%Ich stieß auf ein ähnliches Problem. In meinem Fall verwendet meine Anwendung kein Routing, aber PrimeNG benötigt es immer noch. Es gibt eine offene Anfrage , um den Router optional zu machen, aber PrimeNG hat darauf nicht geantwortet. Also habe ich meinen eigenen Router-Dienst erstellt:
%Vor% Dann habe ich meine systemjs.config.js
geändert, um @angular/router
auf meinen neuen Router zu zeigen. Das hat gut funktioniert und ich kann die Komponente ohne den Router verwenden.
Die Dokumentation ist in diesem Fall nicht wirklich vollständig, Sie können sich den Quellcode anschauen und Sie finden ein vollständigeres Beispiel: Ссылка
Da angular2 auf Komponenten basiert, ist es besser, wenn Sie die Menüleiste in einer Komponente extrahieren und dann von AppComponent
aus darauf verweisen können. Dazu müssen Sie zunächst eine eigene Typoskript-Datei Ihrer Komponente erstellen, in diesem Fall menubardemo.component.ts
:
Dann müssen Sie die @Component
der MenubarDemoComponent
wie folgt hinzufügen:
Und dann fügen Sie es dem AppComponent
wie folgt hinzu:
Eine wichtige Sache zu erinnern: IMMER verwenden Sie "" (Backtick) wenn Erstellen einer Vorlage direkt in der von Ihnen verwendeten Komponentendefinition "'" (einfaches Anführungszeichen) und ist falsch (wenn Ihr HTML mehr Zeilen benötigt, ziehen Sie in Erwägung, es in eine andere Datei zu extrahieren).
Sie instanziieren die Komponente: items = new MenubarDemo()
, das ist auch falsch, weil Komponenten sind
automatisch für Sie injiziert, deklarieren Sie nur die Komponente in der
directives
-Feld.
Ich habe das gleiche Problem festgestellt. Ich kann MenuItem nicht von primeng / primeng importieren, ich habe sogar versucht zu suchen, wo die Schnittstelle ist, tatsächlich ist es innerhalb des "allgemeinen" Ordners, in primeng Version 17, die Akte nannte es api.d.ts, ich versuchte, das zu kopieren Interface-Deklaration und benutze es in meinem Menü, aber im Moment warte ich nur auf eine Lösung. In der Zwischenzeit können Sie dies versuchen, und es wird funktionieren, deklarieren Sie einfach Elemente wie jeden Typ.
%Vor%Das ist es.
Betrachte den Fehler "Kein Provider für Router" sieht aus wie ein Problem mit der PrimeNG-Komponente, die keinen angular2-Router konfiguriert hat, aber ich habe es nicht bestätigt, es wäre nett, wenn sich jemand damit beschäftigt.
Wie auch immer, ich hatte dieses Problem, habe ein paar grundlegende Routings hinzugefügt und es hat funktioniert, also teile ich es, es sollte so etwas sein:
main.ts
%Vor%app.component.ts
%Vor%neu: app.routes.ts
%Vor%new: content.component.ts (Standardkomponente)
%Vor%Ich habe das herausgefunden, glaube ich.
Sie müssen das MenuModule in der app.module.ts
importieren %Vor%Dies sollte Ihr Problem beheben.
Tags und Links angular typescript primeng