2016-10-28 2 views
0

Ich verwende ejs-Vorlagen, um einige Inhalte in verschiedenen divs zu generieren.Verwenden Sie den EJS-Vorlagennamen in der Vorlage selbst.

lassen Sie uns sagen, es ist ein bisschen wie folgt aussieht:

<% include test1 %> 

<% include test2 %> 

<% include test3 %> 

und in jeder dieser Vorlagen, würde ich gerne wissen, welche Vorlage ich automatisch bin. Nehmen wir zum Beispiel an, ich bin in der Datei "templatei.ejs" (wobei i der Index der i-ten Vorlage ist). Gibt es jetzt eine Möglichkeit für mich, den Namen der Vorlage zu kennen?

dies ist, wie jede Template-Datei aussieht:

<div> 
<h2>header info</h2> 
<p>some text comes here</p> 
<a href="/<% this.fileName() %>">now I want this url to be a link to a seperate page that only loads one template<a> 
</div> 

this.fileName() wird es nicht nur um auszudrücken, was Arbeit war meine ich. Ich möchte eigentlich einen Link zu einer separaten Seite für jeden meiner divs hinzufügen.

der Grund, warum ich Javascript nicht Urls zu generieren verwenden, ist, dass ich Crawlern möchte es zu finden und ich denke nicht, ein Crawler die Seite nach js Änderungen kratzen würde.

+0

Klingt wie ein X/Y-Problem, warum sollten Sie wissen müssen, welche Vorlage Sie sich befinden, wenn Sie derjenige sind, der die Vorlagen geschrieben, und sie sind alle auf die übergeordnete Datei beschränkt, in der sie enthalten sind? – adeneo

+0

Da es viele Vorlagen gibt, die ich verwendet habe, und ich möchte nicht alle manuell durchgehen, möchte ich sehen, ob es irgendeinen anderen Weg gibt, dies automatisch zu tun. –

+0

Aber warum müssen Ihre Vorlagen den Dateinamen kennen? Ich kann mir keinen Grund vorstellen, warum der Dateiname der aktuellen Vorlage für die Vorlage selbst relevant wäre? – adeneo

Antwort

0

senden Sie den Dateinamen (den Sie rendern möchten) in Include-Anweisung.

<%- include('test1', {filename: 'data'}) %> 

innen test1 ejs

<div> 
<h2>header info</h2> 
<p>some text comes here</p> 
<a href="/<% filename %>"><a> 
</div> 
Verwandte Themen