主干,而不是“this.el”包装

2023-12-05

我广泛使用模板,我喜欢用完全包含模板。我的意思是我想看到template对所有 DOM 元素进行编码,包括root一,像这样:

<script type="text/template" id="template-card">
  <div class="card box" id="card-<%= id %>">
    <h2><%= title %></h2>
    <div><%= name %></div>
  </div>
</script>

但 Backbone 喜欢的是template像这样:

<script type="text/template" id="template-card">
  <h2><%= title %></h2>
  <div><%= name %></div>
</script>

并定义rootJS 代码中的元素及其属性。我的想法是丑陋且令人困惑的。

So, 有什么好方法可以避免我的 Backbone View 用额外的 DOM 元素包装我的模板吗?

我一直在检查这个问题线程:https://github.com/documentcloud/backbone/issues/546我知道没有任何官方方法可以做到这一点..但也许您可以向我推荐一种非官方方法。


您可以利用view.setElement渲染完整的模板并将其用作视图元素。

设置元素 view.setElement(元素)
如果您想将 Backbone 视图应用到不同的 DOM 元素,请使用 setElement,它将 还创建缓存的 $el 引用并移动视图的委托 从旧元素到新元素的事件

您必须考虑两点:

  1. setElement calls undelegateEvents,处理视图事件,但要小心删除您可能自己设置的所有其他事件。
  2. setElement不会将元素注入到 DOM 中,你必须自己处理。

也就是说,你的视图可能看起来像这样

var FullTemplateView = Backbone.View.extend({

    render: function () {
        var html, $oldel = this.$el, $newel;

        html = /**however you build your html : by a template, hardcoded, ... **/;
        $newel = $(html);

        // rebind and replace the element in the view
        this.setElement($newel);

        // reinject the element in the DOM
        $oldel.replaceWith($newel);

        return this;
    }
});

以及一个可以使用的示例http://jsfiddle.net/gNBLV/7/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

主干,而不是“this.el”包装 的相关文章

  • 在Javascript中,这个下划线是什么意思?

    var Gallery Backbone Controller extend index null photos null album null subalbums null subphotos null data null photosv
  • 一次保存多个 Backbone 模型

    我有一个包含大量模型的 Backbone 集合 每当在模型上设置特定属性并保存它时 就会触发大量计算并重新渲染 UI 但是 我希望能够同时在多个模型上设置属性 并且只有在全部设置完毕后才进行保存和重新渲染 当然 我不想为一项操作发出多个 h
  • Backbone:同一模型的多个视图模型

    新手骨干问题 背景 建立一个有骨干的购物清单 我有一个名为名称 描述和标签 数组 属性的模型类 我想基于此模型或此模型的集合创建两个视图 第一个视图将显示所有项目 如下所示 ul li h3 Item 1 Name h3 p Item 1
  • 扩展 Backbone.Collection 原型

    继从这个问题 https stackoverflow com questions 10219182 retrieve element from backbone collection removen 我正在尝试使用一些自定义方法来增强 Ba
  • 使用node.js和backbone.js进行模板渲染

    有没有人找到一个好的解决方案来开发可在服务器和客户端上使用的backbone js模板 这对于backbone js历史堆栈来说是非常理想的 因为用户可以在浏览器位置栏中共享和链接到真实的url 并且node js服务器可以在第一个页面视图
  • 类型错误:“未定义”不是函数(评估“sinon.spy()”)

    我正在尝试使用sinon js http sinonjs org 在测试骨干应用程序时 但不幸的是 由于错误 我无法使用间谍方法 TypeError undefined is not a function evaluating sinon
  • Backbone.js 收集抛出错误

    我 作为初学者 正在制作一个小型骨干函数来附加我的链接 为此我使用要分配模型的集合 但集合抛出错误 任何人都可以纠正我的代码吗 function var Model new Backbone Model data name Yahoo hr
  • 依赖注入与托管依赖关系与全局对象

    我正在 Javascript BackboneJS 一个 MVC 框架 RequireJS 框架中工作 但这个问题有点 OO 通用 首先让我解释一下 在 Backbone 中 您的视图是传统视图和控制器的混合 而您的 HTML 模板是传统的
  • Backbone.js / Marionette.js 中的路由 - 无主题标签、路由列表和子路由器

    我对 Backbone js Marionette js 中的路由有三个问题 1 如何获取我的应用程序路由器已注册的所有路由的列表 例如对于 Express js 在 Node js 中 它将是app routes 我尝试对 Backbon
  • 如何在执行路由方法之前运行“中间件”函数?

    假设我有一个主干路由器 例如 routes homepage catalog id catalogPage catalog id products id2 productPage homepage gt doStuff catalogPag
  • MarionetteJS:应用程序区域与布局[重复]

    这个问题在这里已经有答案了 我正在阅读最新版本 2 3 0 的文档 它说应用程序区域现已被弃用 应用领域 警告 已弃用 此功能已弃用 而不是使用 应用程序作为视图树的根 您应该使用布局 看法 要将布局视图的范围限制为整个文档 您可以设置 它
  • 渲染闭合的 Marionette 视图

    关闭的 Marionette 视图在再次渲染时不应该重新委托定义的事件 事件 modelEvents CollectionEvents 吗 似乎我必须在关闭并重新渲染视图后手动调用 delegateEvents 否则视图将无法按预期工作 h
  • jQuery PUT ajax 请求不起作用

    我正在尝试在 couchdb 中保存 Backbone 模型 因此我已经覆盖了save向 couchdb 发出 ajax 请求的方法 ajax type PUT url http 127 0 0 1 5984 movies this get
  • Marionette CompositeView 为 Collection 中的每个模型呈现自身,而不是 ItemView (Marionette Rails)

    基本上 我试图将 CompositeView 渲染为带有表头的简单四列列表 其中集合中的每个模型都渲染为 并附加到 我正在跟进德里克的一个例子 http jsfiddle net derickbailey me4NK 非常接近 只有一点点变
  • Socket.IO - 开放连接是一个问题吗?

    我目前正在与DerbyJS http derbyjs com 因为它促进了干净 干燥的客户端 服务器代码 附带好处 大多数人使用该框架的主要原因 是它使用 Socket IO 来创建实时应用程序 在这种情况下 我不need实时 但这是一个很
  • backbone.js:视图中影响集合中不同模型的按钮

    我刚刚开始使用backbone js 到目前为止 我真的很喜欢它 我有这样的事情 ModelA ModelB ViewA ViewB ModelA 持有 ModelB 的集合 如何使用按钮构建模型 B 的视图 单击该按钮会更改集合中下一个
  • backscore.js 和 underscore.js CDN 推荐吗?

    是否有backbone js和underscore js的CDN源可以在我们的项目中使用 http www cdnjs com http www cdnjs com托管许多不太流行的 JavaScript 框架 包括 主干 js quest
  • Backbone.js 应用程序可以逐步增强并可供搜索引擎抓取吗?

    我需要为我的下一个项目实现一个 MVC JavaScript 框架 但它既是一个网站 又是一个 Web 应用程序 是否可以公开数据服务器端 然后解析 URL 以显示 JS 版本 我计划使用 Rails 作为服务器端代码 我写了一个关于这个主
  • 为什么将 Backbone.js 与 Rails 结合使用? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 将 Backbone 模型和集合保存到 JSON 字符串

    我在将 Backbone Model 或 Backbone Collection 对象保存到本地存储时遇到问题 问题是 当它保存时 只有属性被保存 我不希望这样 我实际上正在使用他们的示例 TODO 演示中提供的主干本地存储 这是他们的保存

随机推荐

  • 在 JSX/React 中使用 PHP 生成的数组数据构建动态表

    我正在尝试构建一个从 PHP 脚本的输出数组动态生成的表 执行 componentWillMount 后得到以下输出 但我正在尝试使用这些数据 前 4 行是一行 并构建一个表 但我无法了解如何使用此数组数据并将其动态转换为表 任何意见都将受
  • 使用传单和淡入淡出在地图上显示数据

    如何使用模态淡入淡出输入要显示的点的经度和纬度在地图上显示 下面的代码什么也没显示 但是当我在模态淡入淡出中使用json格式的url时 json格式的信息 我不知道如何在数据映射中使用类模态淡入淡出 modal fade 中的 url 应该
  • 在 matlab 中绘制时间序列数据

    我有一些从2007年5月1日到2007年5月30日00 00到23 59 58的数据 我想根据数据和时间一起绘制这些数据 如何同时定义日期和时间 因为它有固定的日期和时间 例如 2007 5 1 00 00 00 0 2 2007 5 1
  • 如何获取类中所有方法的方法引用(Java)?

    方法参考对于 Java 8 中的特定方法可以获取为Class Method 但是如何获取一个类的所有方法的方法引用呢 所有想要的方法都有不同的方法名称 但是same类型签名 此外 方法的名称是未知之前 Example class Test
  • django-tables2 linkColumn 外部 url

    我有 2 个模型属性 model name 和 model url 我需要创建一个 linkColumn 该列名称 model name 并链接到中指定的 url 型号 url 有可能实现这样的目标吗 thanks 您可以使用 Templa
  • 如何在本地主机上运行html文件?

    我有一个 HTML 文件 并在本地主机上运行它 但是 该文件包含使用网络摄像头的镜像 例如 我怎样才能运行这个 HTML 文件在本地主机上 在此示例中 当选中实时复选框时 网络摄像头将启动 您可以在以下位置运行您的文件http服务器 1 g
  • EF Core SaveChanges 是否根据数据注释进行验证

    我有一个带有数据注释的模型 我想知道如果数据注释失败 SaveChanges 方法是否可能失败 我期望 SaveChanges 抛出 Test2 超出 2 到 4 范围 的异常 相反 它保存到数据库中 例如 这是我的测试实体 public
  • 需要 iPv6 兼容性 - iOS 应用被苹果拒绝

    6 月 1 日之后 我向 itunes connect 提交了我的 ionic 应用程序 并收到了来自苹果的消息 应用程序在 IPv6 网络上进行审核 请确保您的应用支持 IPv6 网络 as IPv6兼容性 是必须的 有关支持 IPv6
  • Powershell调用Github API:ConvertFrom-Json管道之谜

    我正在使用 PowerShell 调用 GitHub API 结果是一个 JSON 数组 我使用 ConvertFrom Json cmdlet 将其转换为 PowerShell 对象 这给了我一个 PowerShell 对象数组 但是 当
  • 如何按类查找元素

    我在使用 Beautifulsoup 解析具有 class 属性的 HTML 元素时遇到问题 代码看起来像这样 soup BeautifulSoup sdata mydivs soup findAll div for div in mydi
  • 如何实时查看设备上的应用变化?

    每次我更改代码时 即使只有一行 我也必须运行命令 sudo ionic cordova prepare ios 我必须单击 Xcode 上的播放按钮才能将应用程序上传到 iPhone 上并查看操作中的更改 基本上每次我想测试应用程序时 我都
  • 在 Google AppEngine 上实施 REST 服务 (JSON) [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我正在尝试在 Google AppEngine 上实现 REST 服务 我更喜欢使用 GAE Java 和 JSON 在服务和客户端之间进行通信 每个人最喜欢执行此操作的库是什么 您更喜欢
  • Excel vba - 比较两个范围并查找不匹配项

    我有两张 Excel 工作表 其中一张包含用户列表 而另一个列表包含相同的数据 只是同一用户被列出了多次 现在 我需要某种方法将第二个列表与第一个列表进行比较 并删除包含第一个列表中未找到的用户的行 第一个列表如下所示 保罗 麦卡特尼 约翰
  • 如何使用 JavaScript 以跨浏览器的方式将 DOM 序列化为 XML 文本?

    我有一个 XML 对象 使用加载XMLHTTPRequest s responseXML 我已经修改了该对象 使用 jQuery 并希望将其作为文本存储在字符串中 Firefox 等显然有一种简单的方法可以做到这一点 var xmlStri
  • 当结果集在逻辑应用中只有一条记录时,Foreach 不支持

    我必须从 XML 读取数据并将其加载到 SQL 因此 在中间 我需要为逻辑应用中的每个任务使用的每个记录添加一些业务逻辑 但是 当 XML 中只有一条记录时 结果将被视为对象而不是数组 并且逻辑应用程序失败 这是我的 XML 的样子
  • 计算iPhone所有尺寸的长宽比

    我知道这种类型的问题已经被问过好几次了 但我对 iphone 比较陌生 所以对所有答案感到困惑 因为我的徽标是 61 57 我想根据 iphone 的大小进行更改 但是当我指定所有屏幕的长宽比时 它会给出自己的比例 但我很困惑这个比率是如何
  • Html.RenderAction 使用 Post 而不是 Get

    我的页面上有一个简单的表格 提交后 它会检查是否ModelState IsValid如果无效 则返回具有相同模型的视图 在同一页面上 我正在呈现一个包含另一个表单的操作 如下所示 Html RenderAction AccountNote
  • 使用 sizeWithFont:constrainedToSize:lineBreakMode 计算 UITextView 文本的高度似乎没有返回正确的结果

    我正在尝试计算受 UITextView 约束的文本的高度 但它似乎没有返回正确的结果 这是我的代码 void textViewDidChange UITextView aTextView CGSize textSize aTextView
  • 如何在 Outlook Web App (OWA)、Outlook 2016 Mac 和 Windows 中的 Outlook 加载项中显示垂直窗格

    我正在开发一个针对 OWA Outlook 2016 for Mac Windows 的 Outlook 插件 我的要求是显示加载项垂直位于右侧在阅读和撰写邮件时 对于撰写 它默认显示为所需的 但对于阅读 它是水平显示的 我想垂直显示 简而
  • 主干,而不是“this.el”包装

    我广泛使用模板 我喜欢用完全包含模板 我的意思是我想看到template对所有 DOM 元素进行编码 包括root一 像这样 但 Backbone 喜欢的是template像这样