Backbone.js 和层次结构/树

2024-04-27

我正在开发一个应用程序,该应用程序需要一个表单,允许用户管理任意深度的产品类别层次结构。我可以很容易地将数据加载到页面上,但我有点不知道需要做什么才能使这样的东西与backbone.js一起工作。基本上,我正在寻找嵌套的 UL。当用户选择一个类别时,我希望他们能够编辑/删除该类别或在其下方添加另一个类别。

我无法在网上找到某人在backbone.js 中具有相同数据类型的任意深度层次结构的案例。我会让我的模型类包含我的集合类的实例吗?如何实现节约?我知道这是一个有点广泛的问题,但我主要需要一些关于如何解决这个问题的一般建议(或者更好的是,我没有看过的某个示例)。


您可以将树建模为具有父子链接的项目集合。所以你的模型应该有这样的东西:

      id:           id,
      parent_id:    parent_id 

然后使用 JS 中的递归函数调用从集合构建一棵树。这是一段实时代码:

 function buildTree(branch, list) {
  //recursively builds tree from list with parent-child dependencies
  if (typeof branch == 'undefined') return null;
  var tree = [];
  for(var i=0; i<branch.length; i++)      
    tree.push( {
      item: branch[i],
      children: buildTree( list[ branch[i].id ], list)
    });
  return tree;
}

在使用 underscore.js(无论如何这是backbone.js的先决条件)通过parent_id调用函数组项目之前,然后调用:

  var list = _.groupBy(arrayOfItems,'parent_id');
  var tree = buildTree(list[0],list); 

最后,再次使用递归函数调用渲染树(这里没有示例,但我相信您已经明白了)。

附言。如果您指定正确的parent_id,添加/保存项目应该不是问题。

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

Backbone.js 和层次结构/树 的相关文章

  • 下划线模板抛出变量未定义错误

    我看过一些关于主干js主题的视频 这是直接来自视频的示例 这是从 2012 年开始的 所以我认为主干规则 库已经改变 但我不明白为什么这目前不起作用 在视频中 该人展示了它在 JS Fiddle 中运行 但我无法让它工作 我已经在 J S
  • 如何从backbone.js中的模型获取数组元素

    我有以下代码 Person new Backbone Model data age 27 name alamin 现在 我怎样才能得到这个值 person new Person person get 请给我一个解决方案 如果您使用此模型 P
  • 在主干视图中访问el外部的点击事件

    我如何访问外部的点击事件el scope 我拥有的 HTML div class right btn div div div
  • JavaScript 错误:“不是构造函数”

    我使用backbone js以及jquery和underscore js 这是我的一些代码 它还没有做任何事情 奇怪的是 点击 url users 后没有错误 发生错误的唯一一次是当我单击转到不同的哈希 然后单击返回转到 users 时 这
  • Javascript MVC 框架的目的[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我想知道 Javascript MVC 框架 例如 Backbone js 和 Spine js 的用途 作为一名热心 经验丰富的 Ruby o
  • 如何使用主干单页应用程序在 MVC4 中测试 AntiForgeryToken

    我在获取 Microsoft 的 MVC 时遇到问题 ValidateAntiForgeryToken 使用使用 Marionette Backbone 编写的单页应用程序 SPA 问题似乎是MVC ValidateAntiForgeryT
  • Backbone.js 中的分页

    我知道有一个组件可以实现此目的 但根据我所看到的 您必须创建一个扩展组件的新集合 还有另一种方法可以在主干中进行分页吗 我所需要的只是一个上一个和下一个按钮 将每页的项目限制为 12 个 我一直在 javascript 上创建它 对于生产环
  • 使用 $(function 等启动 javascript 代码

    我正在研究 Backbone 和来自的待办事项示例应用程序http todomvc com http todomvc com 我注意到有 3 种方法可以在文件中启动代码 function code here function code he
  • 扩展 Backbone.Collection 原型

    继从这个问题 https stackoverflow com questions 10219182 retrieve element from backbone collection removen 我正在尝试使用一些自定义方法来增强 Ba
  • Backbone - 对 id 使用不同的字段名称

    我正在移植一个旧应用程序以使用backbone js 希望如此 问题是系统中的各种对象都没有使用 id 作为 id 每个对象都是不同的 通过阅读 我在初始化 Backbone Model 时提出了以下解决方案 initialize func
  • 未捕获的类型错误:无法调用 null 的方法“替换”

    如果我在 Chrome JS 控制台上输入 template pranks list html 它也可以工作 gt gt template pranks list html function a return e call this a b
  • 将服务器端 MVC 与 Backbone.js 相结合

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

    我有一个应用程序 可以通过 Devise 管理 Rails 的注册 输入 退出 当我登录时 我被重定向到 Backbone 启动的 Dashboard index 我想以某种方式在 Backbone 中检索我的 current user i
  • 主干表视图消耗行视图 - 如何构造?

    我有一组模型希望在表格视图中呈现 每个模型应由表中的一行表示 并且该行应使用模板生成 我应该能够将事件处理程序附加到该行 例如单击 在事件发生时发出有关与该行关联的模型的一些特定信息 我见过类似的事情的一种常见方法是将每一行分解到它自己的视
  • 使用 Rivets.js 迭代 Backbone.js 模型的集合?

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

    有没有像backbone js这样的东西的替代品 它为你的前端javascript提供了一些框架 结构 但没有任何不需要的依赖项 并且与jQuery更紧密地结合在一起 您需要一个易于使用的 MVC 框架吗 因为Sammy js http s
  • Marionette.View 中 UI 元素的可用性

    我只是想了解 Backbone Marionette 关于 UI 元素的观点背后的决定 在现有 DOM 元素上实例化 Marionette View 时 如下所示 view new Marionette ItemView el elemen
  • 主干关系有许多最佳实践

    我是 Backbone 关系新手 我不确定使用 HasMany 的正确方法是什么 我有一个Parent模型有很多children 许多 是指成千上万的孩子 为了避免性能问题 我通过外键查询子项 child parent 1 而不是创建一个巨
  • 如何从 Backbone 集合中提取多个属性?

    我试图从 Backbone 集合中提取多个属性 但它返回undefined 收藏 id 1 name raju age 23 sex male hobbies id 2 name ramesh age 43 sex male hobbies
  • 对周围的所有 Node JS 框架/库等感到困惑 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我感觉有点困惑 有很多 Node js 相关 东西 的框架 有人能给我一个概述吗 以下库 框架 其他内容如何相互关联 交互 其中包括什么或

随机推荐