[英]How do I import variables from NodeJS to JS?
如何在JS文件中使用靜態變量?
我正在使用帶有ejs模板的nodeJS。 在HTML中,如果我使用<%= colors %>
但我想在客戶端js中使用color的內容,則可以使用。
我認為它應該看起來像:
var color[] = <%= colors =>
知道我在做什么錯會很高興。 謝謝!
馬呂斯
編輯:為了解決問題,我已經快速寫了這個問題,所以似乎我忘記了解釋一些事情。
colors是由nodeJS express服務器發送的數組。
var colors = ['blue', 'red', 'green'];
在index.ejs模板中,我可以通過以下方式調用“藍色”:
<span>
<%= colors[0] %>
</span>
。 現在我有一個單獨的客戶端functions.js文件。 我想訪問此文件中的“藍色”。
您的第一個問題是var color[] =
無效的JavaScript。
您似乎將其與PHP混合使用。 您正在尋找的語法可能是:
var color = [];
color.push(someValue);
我們無法確定<%= colors =>
的服務器端代碼將輸出什么,但我敢打賭,它類似於blue
。
var color = [];
color.push(<?= colors =>);
因此會給你:
var color = [];
color.push(blue);
…很好,只要您已經有一個名為blue
的變量即可。 您可能在那里需要一個字符串文字,因此您需要將文本編碼為JavaScript文字。
這與JSON大致相同,因此:
var color = [];
color.push(<?= JSON.stringify(colors) =>);
……可能會勝任。
如果colors
不是blue
而是實際上是一個數組,那么您可能只想一次性將整個內容轉儲到變量中:
var color = <?= JSON.stringify(colors) =>;
好的,我找到了解決方法。
我現在在我的index.ejs模板中有這個:
<script>
var colors = [<%= colors %>];
</script>
然后在下一行中調用我的functions.js(客戶端)。 現在我可以使用:
$("span").text(colors[0]);
。 如果有更好的解決方案(jQuery代碼與我使用的代碼不完全相同),請發表評論!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.