我有以下代码,并希望将所有下划线模板设置为使用mustache语法。如果我在函数外部移动_.templateSetting,它就不起作用。我如何在全球范围内设置它?
事先提前arc_eh.mb={
show_tree:function(){
// all i want to do is move this outside and set globally
// for all my underscore microtemplates
_.templateSettings = {
interpolate : /\{\{(.+?)\}\}/g
};
var template=_.template("hello {{ some }}");
var jt = { "some" : "more-something" };
//var final=template({ some : "say-something" });
var final=template(jt);
console.log(final);
更新#1
所以我更新了你在这里遇到的问题:http://jsfiddle.net/vMHeq/1/
我同意你的作品很好 - 我知道这是一个我不熟悉的范围问题。任何帮助表示赞赏。
答案 0 :(得分:1)
基本上,您需要在arc_eh.mb对象之外设置_.templateSettings选项。如果要使用_.template的所有功能,则需要包含所有三个设置。我正在使用{{ - }},{{=}}和{{}}进行格式化。
_.templateSettings = {
interpolate: /\{\{\=(.+?)\}\}/gim,
escape: /\{\{\-(.+?)\}\}/gim,
evaluate: /\{\{([\s\S]+?)\}\}/gim
};
设置一个简单的小提示,告诉你是什么。