1

次のコードがあり、すべてのアンダースコア テンプレートを口ひげ構文を使用するように設定したいと考えています。_.templateSetting を関数の外に移動すると、機能しません。これをグローバルに設定するにはどうすればよいですか?

thx事前に

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/

私はあなたがフィドルがうまく機能することに同意します-これは私がよく知らないスコープの問題であることを知っています。どんな助けでも感謝します。

4

1 に答える 1

1

基本的に、arc_eh.mb オブジェクトの外で _.templateSettings オプションを設定する必要があります。_.template のすべての機能を使用する場合は、3 つの設定をすべて含める必要があります。これの書式設定には {{- }}、{{= }}、および {{ }} を使用しています。

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

簡単なフィドルを設定して、何が起きているかを表示します。

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

于 2012-12-14T03:18:37.630 に答える