有没有办法像任何其他JavaScript模板引擎一样完全使用Jade客户端(例如,Mustache,Handlebars或Nunjucks),以便它通过ajax加载?
我有一个没有在Node上运行的Web应用程序(不幸的是由于各个供应商还没有为Node提供库),我真的开始喜欢Jade的语法和功能。不幸的是,似乎Jade中的所有内容都需要Node,无论是在开发流程还是在服务器端。我绝对不能在服务器端使用它,并且不想仅仅为了模板而将它引入开发周期。
似乎所有必要的是打包依赖项(这可以使用browserify完成)并实现fs以使用ajax读取文件。是否已经实现了这一点?
此外,每个文件每个文件编译一次所需的时间并不是这个应用程序的关注点。
答案 0 :(得分:2)
我实际上已经找到了完成此操作的方法,完全在客户端:
中提琴!
<强>更新强>
这是我的实施:
2:[function(require,module,exports){
module.exports = {
cache: { },
readFileSync: function(path){
return this.cache[path] || (this.cache[path] = (function(){
var request = new XMLHttpRequest();
request.open('GET', path + '?_=' + $.time(), false);
request.send();
if (request.status === 200) {
return request.responseText;
}
else {
throw 'Unable to load template: ' + path;
}
}).call());
}
}},{}]