使用 bootstrap-modal 作为 Backbone.js 视图

2024-04-21

我正在尝试创建一个基于 Twitter 引导模式的 Backbone.js 视图,该视图通过以下方式使用 Backbone 的自动事件委托:events视图的属性。

不幸的是,bootstrap-modal 似乎破坏了 Backbone 的事件委托,因为它在显示模式之前克隆了视图 HTML:

that.$element
      .appendTo(document.body)
      .show()

My view:

App.Views.ProjectsNav ||= {}

class App.Views.ProjectsNav.NewProjectView extends Backbone.View
  events: {
    'click .save': 'save',
    'shown':       'shown'
  }

  save: (e) ->
    ...
    false

  shown: () ->
    App.Helpers.Forms.setFocus($(@el), true)
    false

  render: () ->
    $(@el).html(ich.nav_edit_project_template(@model.toJSON()))
    @$('.modal').modal({'show': true, 'keyboard': true, 'backdrop': true})
    @

相应的(Mustache)HTML 模板:

<div class="modal hide" style="display: none; ">
  <div class="modal-header">
    <a href="#" class="close">×</a>
    <h3>New Project</h3>
  </div>
  <div class="modal-body form-stacked">
    <label for="name">Name</label> <input type="text" name="name" value="{{name}}"/><input type="hidden" name="lock_version" value="{{lock_version}}"/>
  </div>
  <div class="modal-footer">
    <a href="javascript:void(0)" class="save btn primary">Create</a>
    <a href="javascript:void(0)" class="cancel btn secondary">Cancel</a>
  </div>
</div>

Neither save nor shown当相应的事件被触发时被调用。

有任何想法吗?


好吧,解决方案相当简单:

App.Views.ProjectsNav ||= {}

class App.Views.ProjectsNav.NewProjectView extends Backbone.View
  tagName: 'div'

  events: {
    'click .save':   'save',
    'click .cancel': 'hide',
    'hidden':        'hidden',
    'shown':         'shown'
  }

  initialize: (options) ->
    super(options)
    @collection = options.collection

  hide: () ->
    @el.modal(true).hide()
    false

  save: (e) ->
    ...
    @model.save(attrs, {
      success: (project) =>
        @model = project
        @collection.add(@model)
        @hide()
      error: (project) =>
        alert('Something went wrong: ' + project)
      }
    )
    false

  render: () ->
    @el = ich.nav_edit_project_template(@model.toJSON()).modal('keyboard': true, 'backdrop': true)
    @delegateEvents()
    @el.modal('show': true)
    @

  hidden: () ->
    @remove()
    false

  shown: () ->
    App.Helpers.Forms.setFocus($(@el), true)
    false

总结一下,关键是将模式的显示分为两个步骤,从而可以进行分配@el并调用@delegateEvents()之后在使其可见之前。@el.modal(true)可用于访问控制模态的对象,例如以编程方式隐藏它。

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

使用 bootstrap-modal 作为 Backbone.js 视图 的相关文章

  • 使用selenium IDE提取部分文本并将其放入变量中

    有人可以告诉我应该使用哪个命令来使用 Selenium Ide 从文本中仅提取数字 694575 并将其放入变量中以供进一步使用 这是带有文本的 div div class loginBoxTitle Edit Exhibition Cen
  • 在 MongoDB 中查找具有字符串 ID 数组的文档

    我有一个 id 字符串数组 我想将其与 find 函数一起使用 db companies find id in arr arr看起来像这样 563a2c60b511b7ff2c61e938 563a2c60b511b7ff2c61e8b7
  • 如何向 jQuery Tokeninput 添加占位符?

    如何将占位符添加到 jQuery Tokeninput 字段 一个正常的placeholder属性在这里不起作用 对于这样的输入
  • 从 x,y 屏幕空间坐标查找 2D 等距网格上的列、行(将方程转换为函数)

    我试图在屏幕空间点 x y 的二维等距网格中找到行 列 现在我几乎知道我需要做什么 即找到上图中红色向量的长度 然后将其与表示网格边界的向量的长度 由黑色向量表示 进行比较 现在我在数学堆栈交换中寻求帮助 以获得用于计算点 x y 与黑色边
  • 限制文本区域中每行的字符数

    我整个周末都在寻找解决这个难题的方法 但尚未找到一个可以正常工作的解决方案 我想要实现的是限制文本区域中每行的字符数 不是相同地限制它们 而是我选择的每行不同的字符数 例如 我只想在我的文本区域中包含 4 行 第 1 2 和 3 行将限制为
  • 如何通过 HTML 按钮播放声音

    我目前通过网站播放音乐的方法是通过 HTML 音频标签 不过我希望能够通过 HTML 按钮来播放它 该按钮应该能够在播放和停止之间切换音乐 我在 JSFiddle 创建了一个示例 但不知道如何实现它 有人可以告诉我如何使用我的 JSFidd
  • 在浏览器中语音聊天? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我们正在寻求建立一个小组 voice 使用服务器上的node js 在浏览器中聊天 这可能吗 如果您希望您的解决方案是基于服务器端和客
  • 将 Sweet Alert 弹出窗口添加到 React 组件中的按钮

    我为 Bootstrap 和 React 找到了这个完美的 Sweet Alert 模块 我在 Meteor 应用程序中使用它 http djorg83 github io react bootstrap sweetalert http d
  • 响应式网格布局框架[关闭]

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

    默认情况下 当您有这样的片段链接时 a href some url some fragment some text a 浏览器立即向下滚动到该片段 我该如何编程才能使用标准 JS 顺利地向下移动到该片段 这是一个例子 Example htt
  • iframe 重新加载按钮

    我浏览了很多网站 但似乎没有一个能正常工作 或者我不明白它们 我想要一个刷新某个 iframe 的简单按钮 该按钮将位于父页面上 并且 iframe 名称为 Right 有很多方法可以做到这一点 假设这个iframe markup 我们可以
  • 用数组反向查找对象

    假设我有一个这样的对象 resourceMap a 0 1 2 3 4 5 6 7 8 9 10 b 11 12 c 21 23 d 54 55 56 57 510 确定是否的最佳方法是什么resourceId 21将会 c 我们不知道钥匙
  • 如何滚动到div内的元素?

    我有一个滚动的div我想在点击它时发生一个事件 它会强制执行此操作div滚动以查看内部元素 我写的JavasCript是这样的 document getElementById chr scrollIntoView true 但这会在滚动时滚
  • Flux + React.js - 操作中的回调是好还是坏?

    让我解释一下我最近遇到的问题 我有 React js Flux 驱动的应用程序 有一个列表显示文章数量 注意 应用程序中有多个不同的列表 和文章详情查看在里面 但每个列表只有一个 API 端点 它返回文章数组 为了显示我需要的详细信息fin
  • 使水平滚动条始终可见,即使底部不在视图中

    我将用一个片段来开始这个问题 该片段几乎显示了我想要完成的任务 wrapper overflow hidden display flex sidebar min width 200px background 333 color FFF co
  • 如何访问另一个 mobx 商店中的 mobx 商店?

    假设以下结构 stores RouterStore js UserStore js index js each of Store jsfiles 是一个 mobx 存储类 包含 observable and action index js只
  • 加载另一个 JS 脚本后加载

    这是我的代码 very big js file lots of html stuff 问题是 这些是异步加载的 有没有办法等待第二个脚本直到第一个脚本加载 如果您使用 jQuery 有一个非常简单的方法可以通过获取脚本 https api
  • ES6 模板文字的延迟执行

    我正在玩新的ES6 模板文字 http tc39wiki calculist org es6 template strings 我首先想到的是String format对于 JavaScript 所以我开始实现一个原型 String pro
  • 替换两个引号之间的字符串

    我想转动一根绳子str hello my name is michael what s your s into hello my name is span class name michael span 我怎样才能在 JavaScript
  • 在javascript中动态生成行?

    我是 javascript 新手 我想在按下 Tab 时动态生成行 并希望获取在动态生成的行中输入的值 以便我可以在 servlet 代码中使用这些值 这是我的html

随机推荐

  • C# 3.5 ASP.net 文件 IO 问题,网络共享上的文件出现 UnauthorizedAccessException

    每次我尝试访问时都会收到 UnauthorizedAccessException 只是read 网络共享上的文件 服务器 文件夹1 文件夹2 文件 pdf 我正在模拟对上述文件夹具有读写访问权限的域 aspnet 用户 该文件不是只读的 我
  • TextInputLayout.passwordVisibilityToggleRequested 上的 NullPointerException

    我在 Firebase 崩溃报告中收到有关以下内容的错误Password toggle button在某些真实设备中处于发布模式的应用程序上 问题是堆栈跟踪错误的全部内容android support design您将在从 Firebase
  • livereload 不提供地址选择

    更新node js后 我发现了这个问题 当我运行 ionic cordova run android livereload 时 它在本地主机中运行 我该如何解决这个问题 请帮我 离子信息 Ionic CLI 5 2 1 Ionic Fram
  • 如何有条件地实例化不同的子类?

    例如 在main函数中 我想获取用户的输入 根据输入 我将创建一个Rectangle or a Circle 它们是子类Object 如果没有输入 或未知 那么我将只创建一个通用对象 class Object public Object v
  • Eclipse 指标插件建议[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个工具来为我提供一些代码指标 LOC 总数 LOC 类 外部引用 类的数量等 有谁知道一个
  • 哪个 XML 解析器可以处理不完整的 XML 文件?

    我正在尝试使用 SAX 解析器解析 XML 但不断出现XML document structures must start and end within the same entity 这是预料之中的 因为我从其他来源获得的 XML 文档不
  • 尝试上传到 aws s3 存储桶时收到 400 错误请求

    我在服务器上签署 URL 并将其发送回客户端 效果很好 这就是该函数的样子 const aws require aws sdk config require config crypto require crypto module expor
  • 安卓。谷歌 API 翻译

    我在集成 Google API Translate 时遇到一些问题 添加到 gradle 配置此依赖项 compile com google apis google api services translate v2 rev41 1 20
  • 使用 Google Oauth2 客户端访问 API 时 Rails 3.2.3 中出现 SSL 错误

    我对 OAuth2 相当陌生 我正在尝试使用 Omniauth 和 Google API 客户端通过 Google API 访问用户的 Blogger 帐户 我正在使用以下内容 轨道3 2 3 红宝石 1 9 3 oauth2 0 8 0
  • 更有效的循环方式?

    我有来自一个更大脚本的一小段代码 我发现当函数t area被调用时 它负责大部分运行时间 我自己测试了这个函数 它并不慢 我相信它需要运行很多次 所以需要花费很多时间 这是调用该函数的代码 tri area np zeros numx nu
  • 当存在变量空间分隔列时,在 python (numpy) 中加载数据集

    我有一个包含数字数据的大数据集 并且在其某些行中存在分隔列的可变空间 例如 4 5 6 7 8 9 2 3 4 当我使用这条线时 dataset numpy loadtxt dataset txt delimiter 我收到此错误 Valu
  • Foreach - 并行对象

    最近我们开始编写需要很长时间才能完成的脚本 因此我们深入研究了 PowerShell 工作流程 阅读一些文档后 我了解了基础知识 但是 我似乎找不到一种方法来创建 PSCustomObject 对于一个内的每个单独的项目foreach pa
  • 如何在 R 中迭代生成组合? [复制]

    这个问题在这里已经有答案了 所以我目前正在使用以下代码来生成我的组合 组合 x y 但问题是函数存储了所有可能的组合 我不想存储它们 我只想通过循环或其他方式生成它们 这对我的程序来说会更有效率 有没有办法通过 for 循环生成组合而不是全
  • 如何从另一个目录运行 Maven(无需 cd 到项目目录)?

    假设我的maven项目位于 some location project我当前的位置是 another location 如何在不更改项目位置的情况下运行 Maven 构建cd some location project 您可以使用参数 f
  • 模拟迭代行为

    我有一个具有迭代行为的界面 但在 Rhinomocks 中模拟它时遇到了麻烦 示例接口和类是我的问题的一个非常简单的版本 每次调用 LineReader Read 时 LineReader CurrentLine 都应返回不同的值 下一行
  • 如何使用 API 路由在 Next.js 上下载文件

    我正在使用 next js 我有一个第三方服务 我需要从中检索 PDF 文件 该服务需要一个 API 密钥 我不想在客户端公开该密钥 这是我的文件 api getPDFFile js const options method GET enc
  • 使用 sqlite json_each 过滤 json 数组中的多个项目

    我有一个包含以下架构和数据的 sqlite 表 CREATE TABLE Feeds id INTEGER PRIMARY KEY AUTOINCREMENT groups JSON NOT NULL DEFAULT INSERT INTO
  • 哪种快速方法可以并行化 2D NumPy 数组的元素乘法?

    我使用 NumPy 函数einsum https docs scipy org doc numpy reference generated numpy einsum html执行两个 2D NumPy 数组的逐元素乘法和求和 np eins
  • 自动 PayPal 付款

    我正在寻找一种方法来自动将钱从我的 PayPal 帐户发送到其他 PayPal 帐户 通过 PHP 这可能吗 就像是 recievers array email protected cdn cgi l email protection em
  • 使用 bootstrap-modal 作为 Backbone.js 视图

    我正在尝试创建一个基于 Twitter 引导模式的 Backbone js 视图 该视图通过以下方式使用 Backbone 的自动事件委托 events视图的属性 不幸的是 bootstrap modal 似乎破坏了 Backbone 的事