[英]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()
不叫,直到后來。
您需要做的就是按順序安排事情:
_.templateSettings
以使用分隔符。 如果將_.templateSettings
外app.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.