簡體   English   中英

帶下划線和對象文字的javascript范圍

[英]javascript scope with underscore and object literal

我有以下代碼,並希望將所有下划線模板設置為使用胡須語法。 如果我將_.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/

我同意您的撥弄工作正常-我知道這是我不熟悉的范圍問題。 任何幫助表示贊賞。

基本上,您將需要在arc_eh.mb對象外部設置_.templateSettings選項。 如果要使用_.template的全部功能,則需要包含所有三個設置。 我正在使用{{-}},{{=}}和{{}}進行格式化。

_.templateSettings = {
    interpolate: /\{\{\=(.+?)\}\}/gim,
    escape: /\{\{\-(.+?)\}\}/gim,
    evaluate: /\{\{([\s\S]+?)\}\}/gim
};

設置一個簡單的小提琴,向您展示最新情況。

http://jsfiddle.net/AbLA8/1/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM