簡體   English   中英

如何在plunker中維護我的下划線模板設置?

[英]How can I maintain my underscore template settings in plunker?

我一直在使用plunker一個月左右。 我正在制作一個backbonejs plunker,我看到Underscore丟失了我的模板設置並回退到ERB樣式模板,而我想要Mustache樣式語法{{ myData }} 我在我的app.js中設置了值(我總是在我的應用程序中執行),但由於某種原因,它會不斷更改為ERB <%=boo%> 有人可以幫我把模板設置理順嗎? 使用下划線模板的plunker你需要在chrome dev工具或firebug或者等同物中查看控制台輸出...

感謝任何提示或技巧。 我試過了

_.templateSettings = { 
   interpolate: /\{\{(.+?)\}\}/g,
   evaluate: /\[\[(.+?)\]\]/g
 }; 

當我在app.js文件中設置console.log(_.templateSettings)后,一切看起來都正確,但我的模板沒有被處理。 我可以在視圖中打破並運行相同的console.log(),我看到它已切換回ERB樣式。 有誰知道如何讓我的設置堅持下去? 也許這是一個吸引人的問題,因為我多次使用這種方法沒有問題。

這通常可以解決問題。 我甚至試過...... window._ = _;

感謝您的幫助,提示,技巧等...

你剛剛有一個執行問題的命令。 你的app.js說:

var app = {
  init: function () {
    _.templateSettings = {
      interpolate: /\{\{(.+?)\}\}/g,
      evaluate: /\[\[(.+?)\]\]/g
    };
    window._ = _;
  },
  //...

因此,在有人調用app.init()之前,您的模板設置將不會應用。 如果我們看看你在main.js中的一個觀點,我們會看到這樣的事情:

Zurg.Views.AltContent = app.View.extend({
  #...
  template: _.template([...].join('')),
  #...

所以,你的_.template同時調用發生main.js被加載和解析,但app.init()不叫,直到后來。

您需要做的就是按順序安排事情:

  1. 加載庫(jQuery,Underscore,Backbone,...)
  2. 調整_.templateSettings以使用分隔符。
  3. 加載您的視圖。

如果將_.templateSettingsapp.init

_.templateSettings = {
    interpolate: /\{\{(.+?)\}\}/g,
    evaluate: /\[\[(.+?)\]\]/g
};

var app = {
  init: function () {
    // Whatever you really need to initialize things goes here...
  },
  //...

那么一切都應該成功。 順便說一句,你的window._ = _; 訣竅沒有做任何有用的事情所以我把它拿出來了。 你應該在_.templateSettings包含一個escape正則表達式,你可能不需要它,但完整性是好的。

暫無
暫無

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

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