我想通过-request按需将Handlebars
模板交付给我的应用程序。我能够在服务器上对其进行编译,并且还能够提供类似以下输出 ( ) 的内容:Ember.js
Ajax
function
String
Ember.TEMPLATES["authentication"] = Ember.Handlebars.template(function anonymous(Handlebars,depth0,helpers,partials,data) {
this.compilerInfo = [2,'>= 1.0.0-rc.3'];
helpers = helpers || Ember.Handlebars.helpers; data = data || {};
var buffer = '', stack1, hashTypes, options, helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;
data.buffer.push("<h1>Hooray! It works!</h1>\r\n");
hashTypes = {};
options = {hash:{},contexts:[depth0],types:["ID"],hashTypes:hashTypes,data:data};
data.buffer.push(escapeExpression(((stack1 = helpers.outlet),stack1 ? stack1.call(depth0, "main", options) : helperMissing.call(depth0, "outlet", "main", options))));
return buffer;
});
这正是String
我能够从收到的JSON
对象中得到的。现在,我想将这个预编译的模板添加到Ember.TEMPLATES
对象中,如下所示:
if(typeof data.template === 'string' && data.template != '') {
var escapedTemplateString =
data.template.replace(/\\n/g, "\\n").replace(/\\r/g, "\\r").replace(/\\t/g, "\\t");
Ember.TEMPLATES[templateName] = Ember.Handlebars.template(new Function(escapedTemplateString));
}
但这将整个“字符串化”函数包装到另一个函数中anonymous function(){}
,我没有得到模板。如果我用 解压缩“字符串化”函数eval
,则模板为undefined
...
有谁知道如何function
从“字符串化”函数中获得一个没有任何包装的?非常感谢您提前抽出时间;)