如何通过特定选择来组织 Backbone 集合?

2024-01-05

我有一系列物品。我想跟踪当前的选择。当用户单击集合中的不同项目时,我想指示该项目已被选中并显示所选项目的详细信息。将此视为具有详细视图的列表(就像典型的电子邮件客户端)。

Example of a master-detail layout (source https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CocoaBindings/Tasks/masterdetail.html): Example of a master-detail layout

我目前有类似的东西(用 CoffeeScript 编写,模板使用火腿咖啡 https://github.com/netzpirat/haml-coffee/):

class Collections.Items extends Backbone.Collection
  model: Models.Item

  setCurrentSelection: (id)->
    # what to do here? Is this even the right way to do it?

  getCurrentSelection: ->
    # what to do here? Is this even the right way to do it?

class Views.ItemsPage extends Backbone.View

  list_template: JST['items/list']
  details_template: JST['items/details']

  events:
    'click .item': 'updateSelection'

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

  render: ->
    $('#items_list').html(@list_template(collection: @collection.toJSON())) # not sure if this is how to render a collection
    $('#item_details').html(@details_template(item: @collection.currentSelection().toJSON())) # how to implement currentSelection?
    @

  updateSelection: (event)->
    event.preventDefault()
    item_id = $(event.currentTarget).data('id')
    # mark the item as selected
    # re-render using the new selection

# templates/items/list.hamlc
%ul
  - for item in @collection
    %li{data:{id: item.id}, class: ('selected' if item.selected?)} # TODO: How to check if selected?
      = item.name

# templates/items/details.hamlc
%h2= @item.name

我不确定我是否在关注你(我的 CoffeeScript 有点生疏),但我认为你想要做的是设置一个selected您的适当模型上的属性updateSelection方法,然后重新渲染您的视图。

换句话说:

updateSelection: (event)->
    event.preventDefault()
    item_id = $(event.currentTarget).data('id')
    model = this.collection.get(item_id) # get the model to select
    model.selected = true # mark the item as selected
    this.render() # re-render using the new selection
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过特定选择来组织 Backbone 集合? 的相关文章

  • 使用 $.html() 时如何提高渲染性能

    我正在研究骨干demo app https jsfiddle net o75r7fu9 8 显示推文列表 当我用不同的数据替换所有 推文 时 我使用以下命令清除列表 html render function item table html
  • jQueryMobile:未捕获类型错误:无法调用未定义的方法“_trigger”

    我正在使用 jQuery Mobile 和backbone js 当我加载主页时出现以下错误 Uncaught TypeError Cannot call method trigger of undefined 这就是我加载主页的方法 在r
  • Rails:backbone-on-rails gem-

    尝试按照 Ryan Bates Backbone js 教程构建抽奖应用程序 但我已经遇到了第一部分代码的问题 在 application js 的 init 函数中 他初始化了 Raffler 路线的新实例 该实例应该触发警报 主页 但我
  • Backbone.Marionette 在路由更改时更改区域

    我的应用程序有一个主区域 有时主区域中会有一些应可通过 URL 访问的子区域 主要区域内容由应用程序路由器的功能更改 因为他知道主要区域 但是子视图中的临时区域呢 例如网址 docs将显示文档链接列表以及 doc id应在列表旁边显示文档的
  • 使用主干渲染引导模式

    我认为代码可以更好地解释我的问题 风景 App Views ErrorModal Backbone View extend template window template errorModal render function this e
  • 需要帮助了解主干中嵌套视图的基础知识

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

    Node js 服务器有两个角色 前缀为 api 的路由上的 RESTFul API 在其他路线上呈现网站页面 plans features terms 目前 我的所有页面都会呈现一个 正在加载页面 并与 Backbone router 启
  • 与 jQuery 配合使用的backbone.js 替代品?

    有没有像backbone js这样的东西的替代品 它为你的前端javascript提供了一些框架 结构 但没有任何不需要的依赖项 并且与jQuery更紧密地结合在一起 您需要一个易于使用的 MVC 框架吗 因为Sammy js http s
  • 如何将参数传递给backbone.js 中事件对象中绑定的函数

    我需要为 Backbone 中的事件对象中使用的函数提供参数 var DocumentRow Backbone View extend tagName li className document row events click icon
  • MarionetteJS:应用程序区域与布局[重复]

    这个问题在这里已经有答案了 我正在阅读最新版本 2 3 0 的文档 它说应用程序区域现已被弃用 应用领域 警告 已弃用 此功能已弃用 而不是使用 应用程序作为视图树的根 您应该使用布局 看法 要将布局视图的范围限制为整个文档 您可以设置 它
  • 如何填充 Backbone.js 集合的 _byId 数组以便我可以在其上使用“get”?

    我有一个收藏 并且collection models返回模型数组 然而 当我打电话时collection get someId 这个id是模型的idcollection models数组 我得到undefined 看着collection
  • 如何克隆骨干集合

    有没有办法轻松克隆 Backbone Collection 我想知道为什么没有像模型那样的内置方法 我的问题是我有一个模型包含一组孩子 当我克隆模型时 我仍然有子项的集合 但只有它们的默认值 最简单的方法 var cloned new Ba
  • 引发一系列事件 Backbone event:name

    extend object Backbone Events object on myalert one function msg document body innerHTML eve1 msg msg name this name con
  • Socket.IO - 开放连接是一个问题吗?

    我目前正在与DerbyJS http derbyjs com 因为它促进了干净 干燥的客户端 服务器代码 附带好处 大多数人使用该框架的主要原因 是它使用 Socket IO 来创建实时应用程序 在这种情况下 我不need实时 但这是一个很
  • 如何检查侧边栏视图是否已经在主干中渲染?

    通常 用户通过主页进入网站 然后我在那里渲染侧边栏视图 接下来 用户单击链接 路由器呈现另一个视图并替换原始内容视图 侧边栏视图不会重新渲染 当用户在子页面上单击刷新时 侧边栏不会呈现 如何检查视图是否存在并且已渲染 划分责任并坚持下去 不
  • 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.js直接设置模型内部属性hash

    使用 Backbone js 我知道强烈建议使用以下方法设置模型的属性set http documentcloud github com backbone Model set方法 而不是直接修改属性内部哈希 http documentclo
  • 服务器端MVC+客户端MVC

    一个应用程序既是JS密集型的 又具有复杂的业务逻辑 庞大的数据流 使用backboneJS来构造JavaScript代码 并且还需要服务器端MVC 在本例中是Spring 与客户端 MVC 主干 一起实现服务器端 MVC spring 是一
  • Backbone 中的加载栏

    我想显示加载消息 图标 直到列表中的所有项目都已呈现 这是我的示例中的 jsfiddle http jsfiddle net 9R9zU 58 http jsfiddle net 9R9zU 58 我尝试在 Feed 部分添加一个带有加载栏

随机推荐

  • VBA从Word表格复制到Excel

    我正在尝试从 Word 文件中的特定表单元格生成一个包含 5 列的 Excel 文件 从 Word 表复制到 Excel 我的Word文件有280个表格 我对要从 Word 文件复制的单元格进行寻址没有问题 但我不知道为什么结果是一个空白的
  • 通过 iPhone Web 应用程序访问相机

    据我了解 不太可能通过 HTML 访问网络摄像头 那么在 iPhone 上呢 是否可以 从 iOS6 开始 您可以使用以下命令访问相机和照片
  • 如何为Python 3子进程分配CPU亲和力?

    我在 Python 方面还是个新手 我在 Windows 7 和 Windows 10 上运行 Tkinter GUI 我有一个子进程以 1 KHz 运行数据记录器例程 我想为子进程设置 cpu 亲和力 我正在使用 Python 3 8 进
  • 使用 Media * API 进行录制时,支持的媒体类型的完整列表在哪里?

    我正在尝试学习如何在浏览器中记录媒体 我可能会让事情变得过于复杂 有大量直接的例子 但当录音被推到一个高度时 我陷入了困境 Blob具有任意选择的媒体类型的对象 而不检查该格式是否受支持 因此 我认为有一个清单 或者人们只是继续以过去的经验
  • C++ 模板的性能? [关闭]

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

    我正在尝试使用 anaconda 提示符安装 cx freeze 按照他们网站上的内容 我使用了 conda install c pyzo cx freeze 我收到此错误 UnsatisfiableError The following
  • 熊猫数据框条件更改

    我正在处理 csv 时间序列数据 它显示每个时间范围内的步数 一旦步数超过 65535 它将从 0 开始计数 等等 但是 由于并非所有数据集都有 65535 计数 有些从 65530 开始 然后是 5 如果他们在时间范围内走了几个步骤 我不
  • 将 MATLAB 轴移动半步

    我正在尝试定位 MATLAB 的刻度以与我的网格对齐 但我找不到偏移标签的好方法 另外 如果我跑set gca XTickLabel 1 10 我的 x 刻度标签最终的范围为 1 到 5 这给出了什么 您需要移动刻度 但先获取标签并在移动后
  • 如何检测 iframe 大小调整?

    我有一个页面 其功能可以将此页面中的 iframe 高度调整为 iframe 内容的高度 但是当 iframe 具有切换操作时 高度会发生变化 并且该函数不会检测 iframe 的大小调整 有没有办法检测我的 iframe 内容是否发生变化
  • 为什么缓存控制:最大年龄不起作用?

    我正在倾斜http标头 并且我想在 缓存控制 字段上运行测试 所以我构建了一个只有默认页面的asp net网站 在这个页面中 我正在测试 缓存控制 字段 其 Page Load 中的代码如下 Response AddHeader Cache
  • 跨平台.Net? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如果您要编写一个在本地运行并调用 Web 服务的 GUI 应用程序 以实现跨平台 您可以使用 Net 来完成吗 您会推荐哪些工具 我正在考
  • 从 Backbone.js 模型中删除属性

    有没有办法从 a 中删除属性Backbone http documentcloud github com backbone model 原因是我在保存时传递了额外的数据来执行某些操作 但随后该数据会自动添加到我的模型中 文档说不要直接编辑
  • 为什么某些 SQLite 方法需要 Object[] 形式的参数,而其他方法则需要 String[] 形式?

    我对它的设计很好奇Android SQLite API http developer android com reference android database sqlite SQLiteDatabase html 例如 我们有 publ
  • 是时候通过 9600 波特串行发送 32KB 了?

    我想知道我的数学是否正确 如果我的波特率为 9600 那么这意味着每秒发送 9600 位 对吧 如果是这样 那么 9600 bit sec lt gt 1000 ms 9600 bit 0 1042 ms bit 因此 发送 32KB 应该
  • Cocoa Touch 中的协调控制器设计模式

    我正在创建一个带有大量自定义视图的 iOS 应用程序 因此 使用默认的 Cocoa 视图不是一个选项 然后 我决定和协调 中介控制器设计模式 在 Apress Pro Objective C Design Patterns for iOS
  • 主动配置

    Visual Studio 项目中的确切位置是活动配置 release debug等 存储 我相当确定它存储在 suo 文件中 它是一个二进制文件 存储各种用户 计算机特定设置 您可以找到有关此文件的更多信息here http msdn m
  • Git 哈希对象在 Powershell、CMD 和 Bash 中产生不同的 SHA1?

    我认为无论平台如何 SHA1 值都是相同的 我今天遇到了这个问题 希望我能在这里得到一些澄清 我的测试字符串是 Apple Pie In Bash echo Apple Pie git hash object stdin 23991897e
  • IP分片与重组

    我目前正在浏览我的网络幻灯片 想知道是否有人可以帮助我了解碎片和重组的概念 我了解它是如何工作的 即数据报如何被分割成更小的块 因为网络链接有一个 MTU 然而图片中的例子让我感到困惑 因此 前两部分显示的长度为 1500 因为这是 MSU
  • Promise 解析为子流 stdout 并拒绝子流 stderr

    我想建立一个使用以下命令生成子进程的承诺require child process spawn 该过程将其输出流式传输到stdout及其错误stderr 我希望承诺 reject child stderr stream or its dat
  • 如何通过特定选择来组织 Backbone 集合?

    我有一系列物品 我想跟踪当前的选择 当用户单击集合中的不同项目时 我想指示该项目已被选中并显示所选项目的详细信息 将此视为具有详细视图的列表 就像典型的电子邮件客户端 Example of a master detail layout so