下划线模板抛出变量未定义错误

2024-03-25

我看过一些关于主干js主题的视频。这是直接来自视频的示例。这是从 2012 年开始的,所以我认为主干规则/库已经改变,但我不明白为什么这目前不起作用。在视频中,该人展示了它在 JS Fiddle 中运行,但我无法让它工作。 (我已经在 J​​S Fiddle 中包含了必要的库,即 underscore、backbone 和 jQuery)

var V = Backbone.View.extend({
  el:'body',
  render: function () {
  	var data = { lat: -27, lon: 153 };
    this.$el.html(_.template('<%= lat %> <%= lon%>', data));
    return this;
  }
});

var v = new V();

v.render();
<script src="http://underscorejs.org/underscore-min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://backbonejs.org/backbone-min.js"></script>

您过去可以一次性解析并填写下划线模板,如下所示:

var html = _.template(template_string, data);

但从 Underscore 1.7.0 开始,第二个参数_.template http://underscorejs.org/#template包含模板选项:

template _.template(templateString, [settings])

将 JavaScript 模板编译为可评估渲染的函数。 [...] 这settings参数应该是包含任何内容的散列_.templateSettings这应该被覆盖。

您必须使用编译模板_.template然后执行返回的函数来获取您填写的模板:

var tmpl = _.template(template_string);
var html = tmpl(data);

// or as a one-liner, note where all the parentheses are
var html = _.template(template_string)(data);

在你的情况下,它看起来像这样:

var V = Backbone.View.extend({
  el:'body',
  render: function () {
    var data = { lat: -27, lon: 153 };
    var tmpl = _.template('<%= lat %> <%= lon %>');
    this.$el.html(tmpl(data));
    return this;
  }
});

var v = new V();

v.render();
<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.0/backbone-min.js"></script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

下划线模板抛出变量未定义错误 的相关文章

随机推荐

  • 在 Adob​​e Flex 中将数据写入文本文件

    我是 Adob e Flex 新手 我想将存储在字符串变量中的一些数据写入文本 txt 文件中 有人可以在这里添加示例代码对我有帮助吗 谢谢 如果您的目标是 Flash 10 则可以写入文件 阅读本文以了解如何执行此操作 http www
  • 我怎样才能同时捕获 2 个以上的按键?

    最近我对创建 JS 游戏产生了兴趣 不是我有经验但我感兴趣的领域 我知道有几个 JS 游戏引擎 但我并不是真的想创建一个游戏 相反 我很好奇事物是如何工作的 我如何创建一个 我有几个问题 有人建议我在哪里可以阅读它吗 先决条件 需要什么知识
  • 从数据库 php 和 mysql 检索图像的损坏文件图标

    我需要从数据库上传和检索图像 我可以将图像存储在数据库中 但稍后无法显示 请帮忙 我编写了以下代码来从数据库中检索 result1 mysql query INSERT INTO userdata id username firstname
  • 从 SQL 存储过程导出文本文件

    我当前有一个进程存在于 2 个导出文本文件的 MS Access 数据库中 此过程在一天中发生两次 一次是在设定时间触发的自动化过程中 第二次是由应用程序前端的用户触发 这在两个数据库中都是相同的 现在我们正在将此应用程序重写为 SQL S
  • 基于代理/参与者的并发设计的设计模式[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 最近 我一直在研究支持参与者 代理 无共享架构的替代语言 即 scala clojure 等 clojure 也支持共享状态 到目前为止 我读过
  • 为什么 **find** 没有找到任何东西?

    我正在寻找安装在我的系统上的 shell 脚本文件 但是find不起作用 find usr name sh 但我知道那里有大量的脚本 例如 ls usr local lib sh usr local lib tclConfig sh usr
  • 为什么我在 Next.js 中得到这个? 具有无效的 `imagesrcset` 值

    我的轮播中有图像
  • 二叉搜索树过滤某个范围内的值

    我有一棵由 N 个元素组成的树 RBT 假设我有这棵树 N 7 4 2 6 1 3 5 7 如何以比 O N 更好的性能过滤某个范围内的值 例如打印 3 到 6 之间的所有值 有具体的算法吗 我想象它类似于找到值 3 log N 的位置 以
  • 使关闭按钮隐藏而不是关闭[重复]

    这个问题在这里已经有答案了 如何使表单上的关闭按钮有效地充当 隐藏 按钮 有没有办法中止FormClosing event 你可以只捕获FormClosing事件并停止默认操作 然后不关闭表单而只是隐藏它 private void Form
  • NetBeans 12 不再管理库

    一周前 我将 Java IDE 升级到 Netbeans 12 和 JDK 14 直到昨天我才注意到窗口 项目属性 MYPROG 缺乏基本功能 即没有用于编译的行 jar 并且大多数情况下没有任何行可以添加 jar库 而是有一个空行Java
  • 如何在 xamarin android 应用程序中使用动画?

    我想使用 Xamarin C 在我的 Android 应用程序中使用动画 动画 如淡入 放大 移动等等 首先在 resources 文件夹下添加一个文件夹 将其命名为 anim 然后你可以向其中添加你的动画资源 例如 对于淡入动画 在 an
  • 检查 JQuery 移动复选框是否被选中

    我有一个复选框列表 我想获取每个复选框的状态 名单在这里 div fieldset fieldset div
  • 有没有办法在 Zend Framework 1.5 中执行“INSERT...ON DUPLICATE KEY UPDATE”?

    我想用ON DUPLICATE KEY UPDATE在 Zend Framework 1 5 中 这可能吗 Example INSERT INTO sometable VALUES ON DUPLICATE KEY UPDATE 我在 Ze
  • 实施委托

    我想我正在关注代表团的运作方式 这是我遵循的教程 http www iphonedevsdk com forum iphone sdk tutorials 81489 how why implement delegation pattern
  • 在导入 Google 电子表格之前过滤 CVS

    我在 Google 电子表格中有一个脚本 该脚本从 URL 下载压缩的 CSV 然后将其导入电子表格 实际上 CVS 太大了 我不需要其中的所有数据 我的问题是 如何在将数据导入电子表格之前过滤数据 例如 使用 X 值过滤 A 列 这是我到
  • Java 线程是如何工作的

    我是一名Java学习者 试图理解线程 我期望下面的程序按顺序输出 线程已启动 运行方法 再见 但我按顺序得到输出 再见 线程已启动 Run 方法 这是我的代码 public class RunnableThread public stati
  • 实体框架继承映射 (TPH)

    我正在努力将项目从 nHibernate 转换为实体框架 并陷入映射继承的映射问题 我有以下基类 为简洁起见缩短 public abstract class Status public Guid Id get set public stri
  • Android 应用程序中的多个包

    我在我的应用程序中包含了另一个开发人员免费提供的课程 他的班级有不同的包 这会在 Android 市场等方面造成任何问题吗 应用程序中的每个类都需要是我自己的包吗 尽管这是一个非常古老的问题 但我想澄清一下 Java 级 包 问题所在 和
  • 带有 SSIS 包的 SQL Server 作业 - 无法解密受保护的 XML 节点“DTS:Password”,错误为 0x8009000B

    我有一个运行 SSIS 包的 SQL 服务器作业 该作业有 9 个步骤 每个步骤都从不同的数据库中提取数据 连接字符串被定义为每个步骤中的参数 当我运行作业时 我收到以下错误 Executed as user USER MYSERVER M
  • 下划线模板抛出变量未定义错误

    我看过一些关于主干js主题的视频 这是直接来自视频的示例 这是从 2012 年开始的 所以我认为主干规则 库已经改变 但我不明白为什么这目前不起作用 在视频中 该人展示了它在 JS Fiddle 中运行 但我无法让它工作 我已经在 J S