我正在构建一个JavaScript繁重的Rails 3应用程序。它使用underscore.js,它具有基于ejs(http://embeddedjs.com/)构建的非常优雅的模板机制。
问题:embeddedjs大量借鉴了erb语法,因此在erb模板中包含ejs模板会导致 View 呈现问题。
有没有办法在erb文件中包含“non-erb”部分?这可以让我在erb文件中定义ejs模板。现在,我正在使用一个黑客工具,其中有一个帮助程序,该帮助程序读取包含ejs模板的文件的原始内容,并将其作为erb模板中的原始字符串输出。
最佳答案
我使用此技巧来解决问题:
// Using custom tags to be able to use regular for templates in templates
var ejs = require('ejs');
ejs.open = '{{';
ejs.close = '}}';
// Using html extension for custom ejs tags
app.register('.html', ejs);
app.set('views', __dirname + '/views');
app.set('view engine', 'html');
这将<%%>更改为{{}},让我将<%%>用于JS使用的模板。这对我有用,因为我没有经典样式模板(<%%>)。
如果您有很多,可能只想对underscore.js模板做同样的技巧。
关于ruby-on-rails - 在erb模板中嵌入ejs模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4716557/