Ich benutze Assembly.io für eine einfache statische Website, aber habe Probleme mit dem Tag {{title}}. Hier ist ein grober Überblick über das Problem.Kontext von {{title}} in Master-Vorlage bei der Verwendung mehrerer Daten/JSON-Dateien mit Assembly
Hier ist meine layout.hbs:
<!DOCTYPE html>
<html>
<head>
<title>{{title}}</title>
</head>
<body>
<!-- the body tag is used to "pull in" content from pages -->
{{> body }}
</body>
</html>
I 2 json Dateien für Daten:
foo1.json
{
"title": "Hello world I am title 1"
}
foo2.json
{
"title": "I am a different title"
}
Und ich habe 2 Seiten:
foo1.hbs
{{#foo1 }}
{{> module1 }}
{{> module2 }}
{{> module3 }}
{{/foo1 }}
foo2.hbs
{{#foo2 }}
{{> module1 }}
{{> module2 }}
{{> module3 }}
{{/foo2 }}
Mein gruntfile.js Schnipsel:
options: {
layout: "src/responsive/layouts/layout.hbs",
partials: 'src/responsive/modules/**/*.hbs',
data: 'src/responsive/data/**/*.json',
flatten: false
},
pages: {
expand: true,
cwd: 'src/responsive/pages',
src: '**/*.hbs',
dest: 'src/'
}
Wenn ich 'grunt assemble' laufe bekomme ich keinen Seitentitel. Ich denke, das hat etwas mit Kontext zu tun, als ob ich {{title}}
in layout.hbs zu {{foo1.title}}
ändern oder {{foo2.title}}
es funktioniert, aber dann beide Seiten erhalten den gleichen Titel wie sie diese Vorlage teilen.
Wie kann ich den Kontext von {{title}}
in layout.hbs funktionieren für alle JSON-Dateien, die übergeben werden?
A.
Ich habe versucht {{page.title}}, aber dann beide den Titel von foo1.json – Adi
zurückgeben Ich habe auch versucht {{this.page.title}}, aber beide Ergebnisse gibt den Titel von foo1.json zurück. Wenn man Seiten kompiliert, verwendet es alle concat alle JSON-Dateien und verwendet sie für jede Seite? Ich dachte, es gäbe eine 1: 1-Beziehung zwischen Page und Json, wenn sie den gleichen Namen hätten? – Adi
Sind Sie sicher über '{{page.title}}'? Es funktioniert bei mir richtig mit deinem Beispiel. – raidendev