Ich habe ein Meteor-Projekt mit ein paar verschiedenen Blaze-Layout-Vorlagen und ich möchte für sie, um jeweils ihre eigenen weniger Stylesheets haben. Wie importiere ich sie pro Layout, d. H. Nicht alle in der Datei main.less importieren?Meteor Import LESS-Dateien pro Layout
Antwort
Das Problem ist, dass Meteor in der Produktion alle CSS in eine große Datei verkettet, so dass Sie keine bestimmte Datei nur an eine Vorlage anhängen können.
Ich habe dies um, indem im Grunde wie so eine automatische Wrapper div definieren:
In Ihrem Router definiert ein Standard-Layout z.B. in ironRouter:
Router.configure({ layoutTemplate: 'mainLayout', });
In Ihrem mainLayout Vorlage, eine Verpackung div etwas wie folgt erstellen:
<div class="custom-page-wrapper-{{currentRouteName}}"> {{> yield}} </div>
eine globale currentRouteName Helfer wie folgt definieren:
UI.registerHelper("currentRouteName",function(){ return Router.current() ? Router.current().route.getName() : ""; });
Damit jede Vorlage, die dieses Layout-Vorlage verwendet, wird automatisch mit einer benutzerdefinierten-Seite-Wrapper-XXXX-Klasse in einem div gewickelt werden, die jede Vorlage und auf der Grundlage der Route Name eindeutig ist (die ist garantiert einzigartig oder sonst ironRouter wird einen Fehler auslösen).
Danach können Sie jedes Template-spezifische Styling innerhalb dieser Klasse in einer beliebigen LESS-Datei angeben.
Obwohl dies nicht genau dasselbe ist wie das Angeben einer anderen Datei für jede Vorlage, führt es funktional die gleiche Sache mit der einzigen Ausgabe aus, die eine extra Wrapper div ist.
Der einfachste Ansatz sie aus Ihrer Vorlage js Dateien wie so wörtlich zu importieren ist:
// File layout.html
<template name="layout">
<div class="layout-wrapper">
</div>
</template>
// File layout.less
.layout-wrapper {
display: flex;
justify-content: center;
}
// File layout.js
import './layout.html';
import './layout.less';
Template.layout.onCreated(function() {
// etc...
});
Wenn Sie nun die layout.js
Datei Vorlage laden, entweder von eifrigen Laden, importiert oder dynamische Importe, wird es einfügen das kompilierte weniger auf der Seite.
- 1. Meteor Import flowRouter und IronRouter Fehler
- 2. Import SVG-Dateien in Meteor
- 3. Meteor 1.4 Pakete mit Import
- 4. Meteor Import globale Variable wie?
- 5. Meteor 1.3-Import-Modul Fehler
- 6. Meteor Iron Router Layout-Vorlage
- 7. Meteor cordova Layout nicht korrekt
- 8. Mehrere (separate/namespaced) Meteor Client Codebasen pro einzelne Meteor App
- 9. Meteor 1.3 NPM: Unerwartete reserviertes Wort Import
- 10. Import Bootstrap 3 in Meteor 1.3
- 11. Import Mongo Datenbank zu lokalen Meteor Anwendung
- 12. Meteor Import von SimplSchema nicht funktioniert
- 13. Verwendung von FlowRouter mit Meteor 1.3.1 und "Import"
- 14. Wie andorid Layout wie pro Bild unter
- 15. Wie funktioniert DataBindingComponents pro Layout-Basis?
- 16. CodenameOne - Layered Layout Import funktioniert nicht
- 17. Projektstruktur in Meteor und Probleme mit dem Import
- 18. kann Import HTTP-Modul auf dem Client in Meteor 1.3
- 19. Import fortawesome: fontawesome Paket mit Meteor und Reagieren
- 20. Meteor Dynamic Template funktioniert nicht
- 21. Meteor-Simple-Schema vs Meteor-Astronomie
- 22. HTML Raster-Layout mit verschiedenen Spalten pro Zeile
- 23. Gibt es irgendeine Art von Import für Android-Layout-Dateien?
- 24. Eclipse-Layout-Editor funktioniert nicht nach dem Projekt-Import
- 25. RE: Den Adafruit_I2C-Import in ein anderes GPIO-Layout ändern
- 26. Nur ein Standardexport pro Modul erlaubt
- 27. Workaround zu vermeiden Reag Import am Kopf jeder Datei mit Meteor
- 28. Schienenlayouts pro Aktion?
- 29. Schienenlayout pro Controller
- 30. Abfrage pro Woche, pro Tag, pro Stunde