ng-repeat 排序在 jQuery 中抛出异常

2024-02-19

我有一个表,其中包含由 ng-repeat 创建的行。表头有一个 ng-click,用于设置排序谓词(该函数还确定方向,asc/desc)。排序工作正常,但由于某种原因,每次更改谓词并且排序触发时,我都会收到 jQuery 的异常。

这是我正在做的事情的一个例子:http://plnkr.co/edit/qfNcm9RPQSsNgqmm3TYS?p=preview http://plnkr.co/edit/qfNcm9RPQSsNgqmm3TYS?p=preview

正如您在 plnkr 中看到的,ng-repeat 非常简单。我们项目中的 ng-repeat 是类似的,并且没有更复杂。

<tr ng-repeat="contest in AllContests | orderBy:sort:ReverseSort" ng-show="contest.isVisible">

这实际上发生在我们代码中的许多地方,我们使用不同的方法对它们进行排序,但它们仍然受到影响。

可以单击表标题对项目进行排序。那个 plunkr 没有表现出这个问题。尽管排序在我的页面上有效,但它会破坏页面上的其他内容(例如光滑的旋转木马 http://kenwheeler.github.io/slick/控制)。例外情况是 jquery.js 中的第 1430 行(版本 2.1.1,通过 Google CDN,其中包括 Sizzle.js)。发生异常的方法是Sizzle.attr。看起来正在发生的事情是循环遍历使用 ng-repeat 创建的所有元素,并从中获取属性值。当到达“ end ngRepeat:AllContests中的竞赛 | orderBy:sort:ReverseSort ”注释(表示 ng-repeat 部分结束)时,会发生异常。

具体来说,当它尝试在元素上 getAttribute() 时,我收到“未捕获的类型错误:未定义不是函数”。

return val !== undefined ?
    val :
    support.attributes || !documentIsHTML ?
        elem.getAttribute( name ) :
        (val = elem.getAttributeNode(name)) && val.specified ?
            val.value :
            null;

现在,我可以拉取 jquery,将其添加到我的项目中对其进行编辑,以便它计算 elem.nodeName == "#comment",并在这种情况下返回 null。我更想知道我是否做错了什么,或者是否有更好的方法来做到这一点。

否则,有没有办法覆盖该方法并提供我自己的方法而不编辑 jquery 库?

EDIT

以下是实际问题的示例:https://playmlf.com/Lobby/ContestLobby https://playmlf.com/Lobby/ContestLobby

临时决议

我已经编辑了 jQuery 库,使其看起来如下:

Sizzle.attr = function (elem, name) {
    if (elem.nodeName == '#comment') return null;
    // Set document vars if needed
    if ( ( elem.ownerDocument || elem ) !== document ) {
        setDocument( elem );
    }

注意:这只是 Sizzle.attr 方法的顶部部分。首先if是兴趣线。如果该元素是注释,则返回 null。我不想编辑 jquery 库,但我无法弄清楚如何覆盖这个特定的方法,或者阻止它在排序过程中首先被调用。我不喜欢这个修复,但同时我在这上面花了太多时间并且需要一些有用的东西。我稍后会缴纳不良修复税。


发生这种情况似乎是因为 Comment 元素没有 getAttribute 方法。

a bug https://github.com/jquery/sizzle/issues/309为此记录。作为解决方法,您可以将其添加到代码库中并确保它尽早执行:

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

ng-repeat 排序在 jQuery 中抛出异常 的相关文章

  • Kendo 刷新 (DropDownList.refresh()) 不起作用错误未定义

    我试图在另一个 DropDownList 更改后刷新下拉列表 但 Refresh 方法未定义错误正在升级 我尝试再次读取数据源 它显示它正在加载 但数据仍然相同 帮助解决这个问题请 Code DropDownList1 change fun
  • FOSRestBundle:显示我的自定义异常消息

    我试图在 FOSRestBundle 中添加异常的自定义控制 但它似乎忽略了我的自定义消息 响应的状态代码正常 I have throw new HttpException 404 User id not found 但得到这个 json
  • 打开展开/关闭回到原始尺寸一系列带有 img 淡入淡出的框

    我有一系列可点击的框 我需要能够展开框并隐藏其图像 我还需要能够关闭之前打开的一个 将其恢复到原始高度和定义的宽度 同时在其 img 中淡入淡出 info加载ajax内容 div class box img src div class in
  • 如何在输入框中应用多个 ng-pattern 或条件

    条件第一 a zA Z 5 d 4 a zA Z 1 条件二 a zA Z 4 0 9 5 a zA Z 1 g html
  • jQuery / CSS3 动画阴影效果

    所以这个问题可能会被否决 但我认为有人可能会提供帮助 我正在寻找的效果是蓝色块像气球一样上下盘旋 当块上 下移动时 阴影在其下方不断增大和缩小 关于如何编程的任何想法 或者有人知道可以完成的教程 插件吗 你可以使用 jQuery 来完成 或
  • PHP、jQuery Ajax 和 json 跨域返回

    我的 php 编码页面位于一台返回 json 结果的服务器上 php 文件名为 getInfoData php 返回如下 echo json encode v 不 我可以使用 getJSON 读取 json 并在同一服务器上运行它 但我需要
  • 如何将一个“模型”映射到两个字段?

    我有一个具有 高度 属性的模型 我希望允许用户将其编辑为两个单独的字段 英尺 和 英寸 但让它们映射到以英寸为单位测量的单个属性 高度 表格看起来像这样 在这些字段和单个 高度 属性之间创建双向绑定的最佳方法是什么 HTML
  • IE jquery click 仅适用于 li 中的文本,不适用于整个框

    我创建了一系列作为 li 的按钮 我希望用户能够单击它们 ul class item list li class item button style color 4bb2c5 1 li li class item button style
  • JQGrid自定义排序

    我有一个 JQGrid 其中填充了正常工作的数据 默认排序功能按预期工作 但是 我想按单击的列和按名称列排序 每次 我觉得onSortCol是我应该开始的地方 但是文档中没有太多关于如何对表的内容进行排序的内容 理想情况下 我希望不必编写自
  • jQuery 清除 DOM 先前加载的脚本

    大家好 我正在开发一个项目 我使用 jQuery 将页面加载到 div 中 每个页面都有自己的 jQuery 脚本 我的问题是以前加载的脚本没有从 DOM 中清除 这给我的项目带来了更大的问题 例如 我在一个页面中有一组计时器 它会自动保存
  • 使用 AngularJS 制作 Windows Phone 全景图

    我正在尝试在 AngularJS 应用程序中复制 Windows Phone Ui 这是一个example http www expertreviews co uk gallery features 1295629 designing wi
  • Excel Add In - console.log 在哪里输出它的消息 - NodeJS

    我正在尝试使用 JavaScript API 创建 Excel 插件 但我不明白 console log 在哪里输出它们的消息 所有 Microsoft 文档都包含 console log 示例 但没有解释 console log 输出消息
  • jQuery AJAX“multipart/form-data”未发送数据?

    我不知道为什么我无法让 jQuery 传递上传数据 因为 AJAX 对象似乎已正确配置 并且正在发送正确的 Content Type MIME Type 标头 我尝试了两种不同形式的请求 一种是在文字中包含 FormData 对象 另一种是
  • 如何使用 CSS 将 div 置于表格中心?

    我正在尝试向我的网站之一添加幻灯片 整个页面布局在一个 HTML 表格中 我非常讨厌它并且没有选择 我想将我的幻灯片放在该特定列的中心 我的 CSS 如下所示 slideshow position relative slideshow IM
  • 如何检查jquery数据表中的每个复选框?

    我有一个第一列带有复选框的表格 我使用 jQuery DataTable 插件显示我的表格 我制作了 2 个链接来选择 取消选择每个复选框 这是选择全部的一个 a href Select all a 和 JavaScript functio
  • 在外部单击时关闭弹出 div

    我有一个弹出 div 仅在单击特定按钮时显示 单击同一按钮时它甚至会隐藏 我的问题是 我还想在单击外部任何地方时隐藏 div 我无法这样做 因为弹出 div 位于主包装类内部 并且无法通过在包装类上使用 click 事件并使其隐藏来做到这一
  • 返回吃异常

    我至少发现了以下行为weird def errors try ErrorErrorError finally return 10 print errors prints 10 It should raise NameError name E
  • 优化正则表达式以过滤数千个 HTML 选择选项

    背景 我开发了一个基于 jQuery 的穿梭小部件 https stackoverflow com a 13557000 59087对于 HTMLselect元素 因为我找不到一个经过最低限度编码并提供正则表达式过滤器来补偿的元素变音符号
  • 如何仅在第一次访问时弹出模态窗口

    我有一个模式窗口 当您访问某个页面时会弹出 访客必须选择我同意或我不同意 我需要一个漂亮的小 jquery 脚本 它会记住谁之前访问过该页面并同意 这样他们每次访问该页面时就不会弹出模式 有人可以推荐一个好的脚本来使用吗 这是代码 div
  • DbContext.SaveChangesAsync 异常处理

    当搭建新的脚手架时ApiController通过 Visual Studio 2013 中的异步操作和实体框架支持 某些方法可以包装DbContext SaveChangesAsync https msdn microsoft com en

随机推荐

  • 如何使用自定义元素将子自定义元素包装到 div 中

    我正在尝试创建一个包装器自定义元素 将其子自定义元素包装到 div 中 但子元素没有被包装 相反 一个空的 div 被插入到子元素之前的包装元素中
  • 如何对私有变量进行单元测试?

    考虑一个链表类 我维护 2 个私有变量 1 firstNode 和 2 lastNode 因此 这些变量仅供内部使用 不通过 getter 公开 我想测试操作是否按预期修改这两个变量 例如 如果最后一个节点是重复的 则消除排序链表中的重复应
  • Blade 文件中的 if else 条件(laravel 5.3)

    我想检查一下if else我的刀片文件中的状况 我想检查一下情况 user gt status waiting 如下面给出的代码 输出按我的预期正确返回 但随着我的输出 我发现打印了大括号 我想删除结果中的大括号 我的有什么问题吗if健康
  • 计时器每 5 分钟运行一次

    如何每 5 分钟运行一些函数 示例 我想跑步sendRequest 仅在 14 00 14 05 14 10 等时间 我想用 C 以编程方式完成它 该应用程序是 Windows 服务 Use System Threading Timer h
  • Mockito:模拟对象,不是成员,但内联创建

    我有一个类执行以下操作 public class Transformer public void transform final Car car throws IOException switch car getType case OFFR
  • 如何以 vmware 清晰度动态切换主题

    Vmware Clarity 0 10 16 刚刚发布了新的深色主题 这很棒 他们描述了如何添加新主题 但没有描述在页面内动态更改它的可能性 是因为不可行吗 如果是的话 我该如何使用 Angular 4 来做到这一点 有什么网站可以帮助我解
  • 在 Debezium Mysql Connector 中将更多表列入白名单的有效方法

    将新表列入 debezium mysql 连接器白名单是否遵循任何最佳实践 我们在 CDC 流程中使用 debezium mysql 连接器 并且出现了一个用例 将更多表列入连接器配置的白名单 以下是正在使用的 Debezium 的版本详细
  • RoR,无法从 DateTime/TimeWithZone 迭代

    我有一个简单的任务 我想获取开始日期和结束日期并循环天 日期 这段代码正在我的 db seed rake 任务中使用 目前 我的代码已经经历了以下尝试 someModel start date to datetime someModel e
  • 使用confirm()作为if的条件?

    我有这个功能 function RemoveProduct if confirm Poista return true return true else return false 当您单击页面上的 删除 按钮时 它应该询问是否应该删除产品
  • HTML SRC 属性 - 使用 html 代码而不是 URL

    有没有办法使用纯 html 代码在框架内显示 而不必链接到特定的 URL 文件 例如 不是这样的 但就像这样 也许您可以将 HTML 注入 iFrame Frame 中 如本文所述 将 HTML 注入 IFrame http softwar
  • 如果兄弟节点具有特定值,如何使用 XPath 选择节点?

    我有以下文件 a a
  • 执行控制台命令并获取其输出

    我想知道 在 Visual Basic 2008 中 如何执行外部控制台 命令行 命令并在没有中间文件的帮助下获取其输出 以加快速度 看一下ProcessStartInfo RedirectStandardOutput http msdn
  • Android KeyStore - 密钥并不总是持久存在

    在我的应用程序中 我们使用 RSA 密钥 该密钥是应用程序在第一次启动时生成的 使用 Android 密钥存储 由于未知原因 应用程序无法从某些设备上的密钥存储中检索密钥 我检查了日志 但找不到此错误与特定操作系统版本或特定设备型号之间的关
  • 有谁知道 pymongo 中 2dsphere 索引的工作示例吗?

    我正在尝试编写一个脚本来执行此处提到的基本 2dsphere 索引操作2dsphere http docs mongodb org manual core 2dsphere 使用 pymongo 我找不到任何例子来弄清楚 这是我迄今为止的尝
  • OleDbDataAdapter Fill 和 OleDbDataReader 需要 3-5 分钟来填充

    这是一个非常奇怪的问题 因为它只发生在随机的全新 Windows 10 电脑上 填充数据适配器或数据读取器需要 1 5 分钟 这是从 Windows 7 旧电脑升级到全新 Windows 10 电脑时发生的第三台电脑 第一次出现是在一年前
  • JSON 导入到 Excel

    是否可以在宏中编写 JSON 调用脚本 我想通过 API 连接获取 JSON 字符串 看起来问题是 Excel 期望参数在 HTML 字符串中传递 但 JSON 在 HTML 正文中传递参数 有任何想法吗 由于这是VBA 我会使用COM来调
  • 未为我的带有 Firebase 动态链接的网站设置 UTM 参数

    我需要缩短我的网站网址 我选择 Firebase 动态链接 https firebase google com docs dynamic links https firebase google com docs dynamic links
  • java.lang.ClassCastException,通过 JNDI 查找获取 Entitymanager

    我是 JPA 新手 正在开发一个 web 应用程序 J2EE 其中该 web 应用程序位于 Tomcat 中 所以我无法使用 PersistenceContext 我决定使用 Helper 类 一切都很顺利 然后我决定实现 JNDI 进行连
  • 实施 Izhikevich 神经元模型

    我正在尝试实现 Izhikevich 模型的尖峰神经元 这种类型神经元的公式非常简单 v n 1 0 04 v n 2 5 v n 140 u n I u n 1 a b v n u n 其中 v 是膜电位 u 是恢复变量 If v超过 3
  • ng-repeat 排序在 jQuery 中抛出异常

    我有一个表 其中包含由 ng repeat 创建的行 表头有一个 ng click 用于设置排序谓词 该函数还确定方向 asc desc 排序工作正常 但由于某种原因 每次更改谓词并且排序触发时 我都会收到 jQuery 的异常 这是我正在