[英]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.