【问题标题】:Bootstrap modal and Backbone.js引导模式和 Backbone.js
【发布时间】:2014-12-03 15:40:33
【问题描述】:

我希望在单击 #add-button(创建新任务)或 .list-group-item-heading(编辑现有任务)时显示 Bootstrap 模态(下划线模板:dialog-template),但即使模态html 附加到正文中。

我的尝试在这里:jsfiddle

(由于我的 REST API 对 jsfiddle 不可用,所以任务列表是空的,不知道有没有办法用 jsfiddle 解决这个问题?)

【问题讨论】:

  • 是否调用了渲染函数?
  • @meskobalazs 通过edit函数调用,.list-group-item-heading被点击时依次触发。
  • 所以,如果它被调用,那么它应该将它附加到 DOM。它会附加它吗?如果是这样,您可能需要手动显示模态:$('.modal-dialog').modal('show')
  • @meskobalazs 是的,它将模态 html 放在 的末尾之前,但模态是 not 呈现的。注意:代码已更新,我刚刚在TaskDialog 视图中插入了一个初始化函数,该函数指定了删除错误的模板。
  • 通过渲染我的意思是模式没有显示,但显然 html 在那里。

标签: javascript html twitter-bootstrap backbone.js crud


【解决方案1】:

通过查看您的 Fiddle 并修复其依赖问题,有几个问题:

  1. 您的“添加”按钮不知道其属性指的是什么模式,因为 模式作为带有模板的主干视图存在,并且不在 DOM 中
  2. 您的 Add modal 没有要渲染的模型,并且永远不会调用 this.$el.modal()

要解决此问题,您的按钮必须具有用于初始化和呈现模式的单击处理程序,并且您的模式必须创建一个新任务(如果它还没有)。然后它只需要调用 Bootstrap modal 函数。我已更新您的 Fiddle 以反映这一点。

我所做的只是解决上述问题。我将由您来确定模态模型在保存时进入任务集合之间的通信。

【讨论】:

  • 在您对Button 的定义中,为什么要将其括在括号中,以及为什么在末尾加上()?为什么你把它设为new 而不仅仅是var Button = Backbone.View.extend({...});
  • 它基本上是一样的,除了因为视图不太可能再次被使用,这使视图成为单例并且使我不必创建它的实例。
  • 它实际上应该是button 而不是Button,因为它不是一个类定义——它是一个匿名类的实例。
猜你喜欢
  • 2015-12-17
  • 2021-02-08
  • 2014-12-25
  • 1970-01-01
  • 2013-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-09
相关资源
最近更新 更多