主干,而不是“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”包装 的相关文章

  • 将服务器端 MVC 与 Backbone.js 相结合

    我将 NET MVC 用于所有服务器端逻辑并提供初始页面 但我的应用程序在客户端非常繁重 因此我采用了 Backbone JS 事实证明它非常有用 但我不确定如何构建我的系统以整合这两种技术 在我看来 我有两个选择 在服务器端从 MVC 中
  • 带有通配符的主干事件

    有没有办法监听命名空间的所有事件 所以当我听到这样的事件时 app vent on notification id function type console lof type 它将监听所有这样的事件 app vent trigger no
  • 保护我的 Node.js 应用程序的 REST API 安全?

    我可以在 REST API 上获得一些帮助 我正在编写一个 Node js 应用程序 它使用 Express MongoDB 并在客户端使用 Backbone js 在过去的两天里 我一直在努力解决所有这些问题 但运气不佳 我已经查过了 保
  • 如何将查询字符串传递给backbone.js 路由

    我正在使用 Backbone js 和 jQuery mobile jQuery 移动路由被禁用 我仅将库用于 UI 除了选择页面转换之外 我一切正常 我需要将页面转换 向上切片 淡入淡出 向下滑动 传递到主干路由器 因为转换根据用户来自的
  • Rails:backbone-on-rails gem-

    尝试按照 Ryan Bates Backbone js 教程构建抽奖应用程序 但我已经遇到了第一部分代码的问题 在 application js 的 init 函数中 他初始化了 Raffler 路线的新实例 该实例应该触发警报 主页 但我
  • 主干表视图消耗行视图 - 如何构造?

    我有一组模型希望在表格视图中呈现 每个模型应由表中的一行表示 并且该行应使用模板生成 我应该能够将事件处理程序附加到该行 例如单击 在事件发生时发出有关与该行关联的模型的一些特定信息 我见过类似的事情的一种常见方法是将每一行分解到它自己的视
  • Backbone.js / Marionette.js 中的路由 - 无主题标签、路由列表和子路由器

    我对 Backbone js Marionette js 中的路由有三个问题 1 如何获取我的应用程序路由器已注册的所有路由的列表 例如对于 Express js 在 Node js 中 它将是app routes 我尝试对 Backbon
  • Backbone.js 和 JQueryUI 对话框 - 事件未绑定

    我正在尝试在 JQuery 对话框中使用 Backbone js 我已经设法让对话框呈现并打开 但它似乎没有触发我的事件 我添加了一个测试事件来检查这一点 单击它并没有得到预期的结果 我尝试按照此说明进行操作blogpost http ba
  • 需要帮助了解主干中嵌套视图的基础知识

    我一直在阅读有关backbone js 中嵌套视图的大量内容 并且了解其中的很多内容 但仍然令我困惑的一件事是 如果我的应用程序有一个 shell 视图 其中包含页面导航 页脚等子视图 这些子视图在使用应用程序的过程中不会改变 那么我是否需
  • 使用 Rivets.js 迭代 Backbone.js 模型的集合?

    我在用着铆钉 js http rivetsjs com 对于 Backbone 项目中的两个双向数据绑定 并且希望实现迭代绑定 文档表明迭代绑定是可能的 但没有可用的示例 我正在使用一个简单的 Rails API 将 JSON 发送到客户端
  • 与 jQuery 配合使用的backbone.js 替代品?

    有没有像backbone js这样的东西的替代品 它为你的前端javascript提供了一些框架 结构 但没有任何不需要的依赖项 并且与jQuery更紧密地结合在一起 您需要一个易于使用的 MVC 框架吗 因为Sammy js http s
  • 覆盖骨干模型更改事件

    我认为我想做的事情很简单 我只是不知道该怎么做 当我的模型属性之一发生更改以便将一些数据传递给事件处理程序时 无论更改是值的增加还是减少 我想触发我自己的事件 基本上我希望我的处理程序在视图中执行此操作 handler function i
  • 主干集合排序

    我制作了我的第一个主干应用程序 但在集合排序方面遇到了一些问题 使用这个后 var SortedFriends MyFriends sortBy function friend return friend get uid console l
  • Backbone Marionette CompositeView 排序列表 - 在添加时呈现额外的模型

    这是小提琴 http jsfiddle net QhQ8D 10 http jsfiddle net QhQ8D 10 代码在下面 制作一个聊天应用程序 需要一个排序的 连接的用户列表 名称上带有比较器的图形集合连接到 CompositeV
  • 渲染闭合的 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
  • Backbone.js 与 Google 地图 - 有关此问题和侦听器的问题

    我有一个为 Google Maps v3 创建的模块 我正在尝试将其转换为 Backbone js 视图构造函数 到目前为止 这是我的视图模块 我将解释代码后遇到的问题 pg views CreateMap Backbone View ex
  • 获取钛合金中点击的TableRow的ID?

    我是 Titanium 和 Backbone 的新手 我以前使用过 JS 框架 最熟悉 Knockout js 但 Backbone 及其与 Alloy 的工作方式需要一些时间来适应 我想做一些非常简单的事情 我有一个绑定到 TableVi
  • 将 Backbone 模型和集合保存到 JSON 字符串

    我在将 Backbone Model 或 Backbone Collection 对象保存到本地存储时遇到问题 问题是 当它保存时 只有属性被保存 我不希望这样 我实际上正在使用他们的示例 TODO 演示中提供的主干本地存储 这是他们的保存
  • Backbone.js 和本地存储。必须指定“url”属性或函数

    我正在提高有关 Backbone js 的知识 并从教程中获取了此代码示例 http bardevblog wordpress com 2012 01 16 understanding backbone js simple example

随机推荐

  • 在 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像这样