gpt4 book ai didi

javascript - 如何在 plunker 中维护我的下划线模板设置?

转载 作者:行者123 更新时间:2023-11-29 15:44:36 26 4
gpt4 key购买 nike

我已经使用 plunker 大约一个月了。我正在制作一个 backbonejs plunker,我看到 Underscore 丢失了我的模板设置并退回到 ERB 样式模板,而我想要 Mustache 样式语法 {{ myData }} .我在我的 app.js 中设置值(我总是在我的应用程序中这样做)但出于某种原因,它不断变回 ERB <%=boo%> .有人可以帮我弄清楚我的模板设置吗? plunker using underscore templating您需要在 chrome 开发工具或 firebug 或 equiv 中查看控制台输出...

感谢您提供任何提示或技巧。我试过了

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

当我 console.log(_.templateSettings)在设置后立即在我的 app.js 文件中,一切似乎都是正确的,但我的模板没有被处理。我可以进入 View 并运行相同的 console.log() 并且我看到它已切换回 ERB 样式。有谁知道如何使我的设置保持不变?也许这是一个 plunker 问题,因为我多次使用这种方法都没有问题。

这通常可以解决问题。我什至尝试... 窗口._ = _;

感谢任何帮助、提示、技巧等...

最佳答案

您只是遇到了执行顺序问题。你的 app.js 是这样说的:

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

因此在有人调用 app.init() 之前,您的模板设置不会被应用。如果我们查看您在 main.js 中的一个 View ,我们将看到如下内容:

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

所以你的 _.template 调用发生在 main.js 被加载和解析的时候,但是 app.init() 没有被调用直到后来。

您需要做的就是按照以下顺序安排事情发生:

  1. 加载库(jQuery、Underscore、Backbone 等)
  2. 调整 _.templateSettings 以使用您的分隔符。
  3. 载入您的观点。

如果将 _.templateSettings 移动到 app.init 之外:

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

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

那么一切都会顺利的。顺便说一句,你的 window._ = _; 技巧没有做任何有用的事情,所以我把它拿出来了。您还应该在 _.templateSettings 中包含一个 escape 正则表达式,您可能不需要它,但完整性很好。

关于javascript - 如何在 plunker 中维护我的下划线模板设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13731460/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com