淘汰赛在自身上绑定一对多关系(淘汰赛中的递归)

2023-12-12

因此,在我的数据库中,我有一个与其自身具有一对多关系的模型。 Reddit 上的评论系统就是一个很好的例子。

我目前正在做这样的事情:

<div class="body" data-bind="foreach: { data: Comments}">
    <span data-bind="text: '(' + OrderQualifier + ') ' + Text"></span>
    <!-- ko foreach: { data: Children } -->
        <span data-bind="text: '(' + OrderQualifier + ') ' + Text"></span> 
    <!-- /ko -->
</div>

这显然只支持一个级别的孩子。 当 Child (Children[i]) 可能也可能没有需要循环的 Children 数组时,是否有一种干净的方法来构造它。在我的示例中,技术上可能存在像这样的无限级别(它不会)。

我很确定我可以想出一些古怪的方法,但我认为可能有更好的方法。 谢谢。

Edit:

我想要映射的数据:

{  
   "@odata.context":"http://localhost:3080/odata/$metadata#SectionApi(*)/$entity",
   "SectionID":4,
   "Text":"Text",
   "Html":null,
   "OrderQualifier":"1",
   "IsUserCreated":false,
   "Children":[  
      {  
         "@odata.context":"http://localhost:3080/odata/$metadata#SectionApi(*)/$entity",
         "SectionID":4,
         "Text":"Text",
         "Html":null,
         "OrderQualifier":"1",
         "IsUserCreated":false,
         "Children":[  
            {  
               "@odata.context":"http://localhost:3080/odata/$metadata#SectionApi(*)/$entity",
               "SectionID":4,
               "Text":"Text",
               "Html":null,
               "OrderQualifier":"1",
               "IsUserCreated":false,
               "Children":[  
                  {  
                     "@odata.context":"http://localhost:3080/odata/$metadata#SectionApi(*)/$entity",
                     "SectionID":4,
                     "Text":"Text",
                     "Html":null,
                     "OrderQualifier":"1",
                     "IsUserCreated":false,
                     "Children":[  

                     ]
                  }
               ]
            }
         ]
      }
   ]
}

正如您所看到的,这包含 3 个级别的子评论,但我需要能够处理未知数量的子评论。


淘汰赛模板支持递归。http://jsfiddle.net/m812qjeq/2/

<div class="body" data-bind="foreach: Comments">
    <div data-bind="template: { name: 'childTemplate', data: $data }"></div>
</div>

<script type="text/html" id="childTemplate">
    <span data-bind="text: '(' + OrderQualifier + ') ' + Text"></span>
    <!-- ko if: $data.Children -->
        <!-- ko foreach: Children -->
            <div data-bind="template: { name: 'childTemplate', data: $data }"></div>
        <!-- /ko -->
    <!-- /ko -->
</script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

淘汰赛在自身上绑定一对多关系(淘汰赛中的递归) 的相关文章

  • Hibernate:使用公式进行多对一

    我希望有人能帮我找到答案 我正在使用旧数据库 无法更改任何预先存在的表 因为其他应用程序依赖于它们 我有三个主要的现有表 A B C A 有一个引用 B 的列 多对一关系 问题是它应该与 C 而不是 B 有关系 所以我创建了一个 1 映射
  • 使用带淘汰赛的引导按钮下拉菜单

    我正在尝试使用 Bootstrap 的精美样式按钮下拉菜单 http getbootstrap com components btn dropdowns淘汰赛 不幸的是 下拉菜单是使用链接而不是
  • KnockoutJS 的购物车逻辑(?)问题

    The Goal 制作动态产品列表 场景 我有一个包含产品的购物应用程序 当我点击add button的产品 我想在侧边栏中显示我添加的产品 问题总结 您只需阅读此内容 我的代码中有以下代码ProductsSummary Index csh
  • KnockoutJS:向映射生成的 ObservableArray 中的对象添加 Observable 属性和函数

    我是新来的淘汰赛 http knockoutjs com 并且我一直试图向生成的对象添加其他属性和方法ko observableArray 由创建mapping plugin 这就是我要做的 我有一个 JSON 数组Users 我已经创建了
  • 制作一个没有 new 关键字的 javascript 淘汰视图模型

    我正在浏览淘汰教程 所有示例都使用 new 关键字创建视图模型 from learn knockoutjs com function AppViewModel this firstName ko observable Bert this l
  • 两个属性与一个实体共享相同的 OneToMany 关系 Symfony2

    首先描述一下我的情况 我正在使用 Symfony2 但我的实体之间的关系存在问题 我有两个链接在一起的实体 这两个实体是AssociationQuestion and AssociationPossibleAnswer 我目前正在创建一个调
  • 使用 Chrome 控制台通过 RequireJS 访问 Knockout ViewModel

    既然我正在使用 RequireJS 如何在 Chrome 控制台中访问 KnockOut ViewModel 变量 在使用 RequireJS 之前 我遵循命名空间模式 将所有内容隐藏在单个全局中 我可以通过在 Chrome 控制台中输入以
  • jquery .html() 追加后绑定不起作用

    我有这个简单的 div div div 它是空的 现在我正在尝试附加这个HTML到上面的div div div
  • knockout.js 将表单加载到 viewModel 中

    我目前正在成功使用 knockout js 来处理应用程序中的所有数据绑定 但是 在每个页面加载时 在我的 document ready 中 我正在执行初始异步数据加载 如下所示 document ready getData 但是 是否可以
  • 淘汰赛js和全球化

    我不知道如何使用淘汰赛 js 和非美国语言环境来处理计算 我的逗号是 并且使用 jquery globalization 插件正确验证 但淘汰计算给我一个 NaN knockout js 是否以任何方式支持这一点 或者是否存在任何解决方法
  • KnockoutJS:在 Select 中的每个选项上调用单击事件

    我希望每当用户单击 SELECT 元素中的选项时 Knockout 都会调用一个事件 这是我的 JavaScript function ReservationsViewModel this availableMeals mealName S
  • Knockout 中的 TextBox 数据绑定问题(提供小提琴)关键问题之一

    Step 1 在我的页面加载时 我使用自定义绑定在文本框中显示日期 Step 2 问题在于 当我尝试发布文本框中的内容时 我在控制器上得到的最小日期是错误的 即 01 01 0001 00 00 00 我的cshtml
  • DurandalJS 路由行为

    我拥有的 试图了解发生了什么以及如何控制它 我对尚未经过身份验证的用户有一个 公共 视图 对经过身份验证的用户有一个 主页 视图 这是我的路线配置 app start then function Replace viewmodels in
  • 如何检查淘汰赛中的包含

    我正在使用淘汰赛 我有一个 html 页面 我想在其中检查具有某些值的字符串 就像我有一个字符串 A B C D F G H I 一样 我只想用剔除 if 检查 html 中的这个字符串 模型 var viewModel function
  • Knockout ObservableArray 不更新 HTML Foreach

    所以我有一个可以正常工作的 observablearray 但 UI 没有更新 我读过很多人遇到这种类型的问题 但我没有看到 所以 HTML 是 tbody tr td span class label label success Yup
  • Edge 中的 Javascript 仅适用于打开的 devtools

    我遇到的问题是 在 MS Edge 中 我的图像映射功能只能部分工作 它由淘汰赛 FW 提供动力 在更大的图像映射上 它不会将整个图像映射注册到视图模型中 因此 图像映射的所有悬停效果和单击样式都会停止工作 然而 这只是大图像地图的问题 还
  • Knockout.js——理解 foreach 和 with

    我一直在阅读 learn knockout js 教程并进行实验 有人可以解释为什么这有效吗 教程 单页应用程序 步骤 2 使用with chosenFolderData and foreach mails table class mail
  • 使用来自服务器和 ko.mapping 创建函数的元数据处理任意选项

    我有一个视图模型 其中一些可供选择的属性值由其他属性决定 这是通过requires field var clusterOptions name None sku 0 price 0 name Standard MySQL Cluster s
  • 如何将 HTML 表格导出到 Chrome 和 IE 支持的 Excel?

    在我的 MVC 项目中 我有一个与 Knockout 绑定的 HTML 表 我正在尝试将表格导出到 Excel 我在客户端尝试使用 JavaScript self exportToExcel function javascript wind
  • AR模型中的关系函数,多对一关系

    所以这是场景 我有两个表 问题和项目 一个项目可以有多个问题 一个问题只能是一个项目 既然Issue是多对一的 那么你必须定义它吗 因为我知道在项目模型中我有 public function relations return array i

随机推荐

  • NSAllowsArbitraryLoadsInWebContent in CN1

    我正在尝试解决 Apple 对 Codename One 的 http 限制 根据 iOS Cocoa 密钥文档 NSAllowsArbitraryLoadsInWebContent 将按照以下说明在 iOS 10 上运行 仅适用于要加载的
  • 在 PostgreSQL 中创建数据库的副本

    在 pgAdmin 中将整个数据库 其结构和数据 复制到新数据库的正确方法是什么 Postgres 允许在创建新数据库时使用服务器上任何现有的数据库作为模板 我不确定 pgAdmin 是否为您提供了创建数据库对话框上的选项 但如果没有 您应
  • 使用 Node.js 从 Azure WebJob 轮询 Azure 服务总线队列

    尝试使用用 Node js 编写的 WebJob 轮询 Azure 服务总线队列 我创建了 2 个 WebJobs 第一个是按需的 并向队列发送 10 条唯一的消息 第二个作业是连续的 并轮询队列中的消息 遇到以下问题 轮询速度很慢 平均需
  • 无法添加窗口——token null 无效;您的活动正在运行吗?

    我想在用户单击浮动图标时显示自定义弹出菜单 浮动图标是通过服务创建的 但我没有任何活动 这是我的浮动图标代码 public class copy actions service extends Service ImageView copy
  • 如何构建 less 的特定于 Rhino 的版本?

    我想运行最新版本less来自Java 为此 我相信 我需要Rhino特定版本的less 来自更少的网站 每个 less js 版本还包含 rhino 兼容版本 但这似乎已经是not案子自 v1 7 5 起 所以我安装了 NPM 安装了 Gr
  • 我可以使用eclipse编写j2me代码吗?

    请问各位 在我下载eclipse之前 是否可以使用它来编译j2me代码 或者它仅用于android应用程序 我发现 netbeans 很难使用 我想知道 eclipse 是否更容易 我是新人 我需要帮助来开始编写 j2me 以及使用 net
  • 如何将自定义CSS文件添加到Sphinx?

    如何添加自定义 css 文件 以下配置不起作用 conf py html static path static html theme default html theme options cssfiles static style css
  • Android studio 3不搜索库依赖项

    My Android studio stopped searching for library dependencies I know that it s better and faster to add dependencies thro
  • Log4j Logger和Appender之间发生死锁

    我正在使用 LogAppender 类 它扩展了 Console Appender 并在日志级别为 ERROR 时在内部使用 Sendmail 函数发送邮件 我知道我可以使用 SMPT 附加程序进行邮件发送 但这就是基础设施的样子 所以请避
  • .NET Core Identity Server 4 身份验证 VS 身份验证

    我试图了解在 ASP NET Core 中进行身份验证的正确方法 我查看了一些资源 其中大部分已经过时 Microsoft 身份的简单实现 ASP Core 身份验证简介 MSDN 身份简介 有些人提供替代解决方案 声称使用基于云的解决方案
  • BroadcastReceiver (TIME_TICK) 每晚都会死掉?

    我想为体育网络服务编写某种后台实时报价应用程序 我希望我的应用程序能够始终调用 TIME TICK 顺便说一句 我也尝试使用 AlarmManager 但问题是一样的 但现在我的问题 我使用带有服务的接收器作为执行部分 注册后每分钟都会正确
  • 从 Classic ASP 将数据导出到 Excel 文件失败

    我正在尝试将记录集导出到 Excel 但它在生产服务器上似乎一直失败 然而 它似乎在我的开发工作站上运行得很好 我想知道我适合与服务器相关的问题 但我有其他应用程序可以使用相同的确切代码 相似的代码相同的设置很好地导出
  • 将 C 程序迁移到 Android NDK

    我是 C C 和 Android NDK 的初学者 在尝试创建本机库时遇到问题 我的代码在 CDT 上使用 MinGW 进行编译 但是当我在 JNI 文件上编写相同的代码时 出现错误 我的代码是 int n 7 int positions
  • EF Core 中的 IsNumeric

    EF Core 中是否有相当于 IsNumeric 的功能 或者使用 linq 或 Dynamic Sql 或类似功能 我试图从 nvarchar 列中仅获取具有数值的行 现在它已添加到 EF Core 中 看起来它是 EF Core 6
  • C# 中 UTC 日期/时间字符串的转换

    我需要转换字符串 Fri Sep 11 00 00 00 GMT 04 00 2020 into a DateTime object 11 09 2011 当我使用 DateTime result DateTime TryParseExac
  • 字符常量对于其类型来说太长

    我想尝试制作一个基于文本的游戏 但对于 item2 item6 它说 多字符字符常量 字符常量对其类型来说太长 从 int 到 char 的隐式转换会将值从 175174007 更改为 103 include
  • 如何自动保持 2 个 git 存储库同步

    有 2 台服务器 应始终保持同步 当有人将某些内容推送到服务器 A 的存储库时 服务器 B 上的存储库应该自动更新 具体取决于哪个服务器是主 从服务器 两台服务器不在同一台机器上 是否可以在每次更新时无需运行额外的手动命令 git fetc
  • 将字符串转换为 NSDate 的正确方法?(iphone)

    在我的应用程序中 我将日期存储为字符串 MM dd YYYY 格式 在数据库中 稍后 当我检索字符串时 我必须比较两个日期 如何实现这一目标 如果我使用 YYYY MM dd 格式 我可以直接将其作为字符串进行比较 现在我必须使用 nsda
  • Roslyn 检查属性的类型

    我试图找出比较 Roslyn 中属性数据的正确方法 static bool ResolveAttributes IMethodSymbol methodSymbol var attributes methodSymbol GetAttrib
  • 淘汰赛在自身上绑定一对多关系(淘汰赛中的递归)

    因此 在我的数据库中 我有一个与其自身具有一对多关系的模型 Reddit 上的评论系统就是一个很好的例子 我目前正在做这样的事情 div class body span span span span div 这显然只支持一个级别的孩子 当