2017-07-21 6 views
1

Ich arbeite an der Stencil-Plattform auf Big Commerce. Diese Plattform verwendet die Lenkersyntax. Ich muss in der Lage sein, einen Wert basierend auf einem der Parameter in meiner URL zu setzen, mehr als der "window.location.pathname", und ich muss in der Lage sein, auf diese neue Variable auf der Site zuzugreifen. Ich bin in der Lage, etwas auf zwei verschiedene Arten mit normalem JavaScript zu arbeiten, aber ich möchte mein Skript nicht überall auf der Site neu erstellen. Im Grunde könnte ich etwas Hilfe verwenden, um eines meiner 2 Vanilla-Skripte zum Formatieren in einen Lenker zu bekommen.eine Variable im Lenker zuweisen

<p id="BrandLogo"></p> 
<script> 
    var directory = window.location.pathname; 
    var branding; 
    var str = directory.includes("blackvue"); 
    if (str === false) { 
     branding = value one; 
    } else { 
     branding = value 2 
    } 
    document.getElementById("BrandLogo").innerHTML = branding; 
</script> 

oder

<p id="BrandLogo"></p> 
<script> 
    var directory = window.location.pathname; 
    var branding; 
    if (str == '/URL-I-Want-To-Focus-On/') { 
     branding = value one; 
    } else { 
     branding = value 2 
    } 
    document.getElementById("BrandLogo").innerHTML = branding; 
</script> 
im Voraus

Dank

+0

Es könnte helfen, wenn Sie uns zeigen, wie Sie Lenker verwenden. – 76484

+0

@ 76484 es wird als Vorlage-Engine von einem Saas-Unternehmen verwendet. Die Lenker-Implementierung liegt außerhalb der Kontrolle von Dlavery. – Alyss

+0

Gibt es einen bestimmten Grund, warum Sie möchten, dass er im Lenker sitzt? Dieses Skript sieht so aus, als ob es auf der Client-Seite mit der Schablone funktioniert. – Alyss

Antwort

0

Wenn Sie versuchen, eine lokale Variable innerhalb Lenker etwas zu setzen und zu verwenden, wie dies versuchen: Was ich, der unten funktioniert gezeigt

Zuerst eine Hilfsfunktion erstellen:

var handlebars = require('handlebars'); 
handlebars.registerHelper("setVar", function(varName, varValue, options) { 
    options.data.root[varName] = varValue; 
}); 

Als nächstes stellen Sie Ihre Variablen ein.

{{setVar "greeting" "Hello World!"}} 
{{#if some-condition}} 
    {{setVar "branding" "Value one"}} 
{{else}} 
    {{setVar "branding" "Value 2"}} 
{{/if}} 

Schließlich verwenden die Variable (n):

<div> 
    <h1>{{greeting}}</h1> 
</div> 

document.getElementById("BrandLogo").innerHTML = {{branding}};