簡體   English   中英

如何在EJS版本2中動態包含帶有變量的文件?

[英]How to dynamically include file with variable in EJS version 2?

最近,我正在使用EJS(version-0.8.4),它在File:node_modules / lib / ejs.js中的以下更新處工作正常,行〜155:

舊代碼:

 if (0 == js.trim().indexOf('include')) {
var name = js.trim().slice(7).trim();
if (!filename) throw new Error('filename option is required for includes');
var path = resolveInclude(name, filename);
include = read(path, 'utf8');
include = exports.parse(include, { filename: path, _with: false, open: open, close: close, compileDebug: compileDebug });
buf.push("' + (function(){" + include + "})() + '");
js = '';  }

對此代碼:

if (0 == js.trim().indexOf('include')) {
var name = js.trim().slice(7).trim();
if (!filename) throw new Error('filename option is required for includes');
// If it is not path, but variable name (Added)
if(options[name])
     var path = resolveInclude(options[name], filename);
else
     var path = resolveInclude(name, filename);
include = read(path, 'utf8');
include = exports.parse(include, options); // Added transfer whole options
buf.push("' + (function(){" + include + "})() + '");
js = '';  }

在ejs文件中簡單編寫:

<%- include variable%> in place of <%- include header.ejs %>

其中varibale =標頭或其他一些包含文件路徑。

但是它不適用於EJS(版本:2.3.4),我應該怎么做才能解決此問題,因為如果它無法解決,將會給我帶來很大的麻煩。

還有一件事要問:在此更新版本(2.3.4)中,ejs.filter是否有其他替代品?

代替使用<%- include variable%>嘗試使用<%-include(variable)%>,它將內部值作為變量。

如果您跳過方括號,它將解釋為字符串“變量”並搜索該ejs文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM