使用 Meteor 进行就地编辑:无法读取 null 的属性“parentNode”

2024-05-12

我已设置就地编辑network模型。有两个输入字段,分别是titledescription模型的。当用户单击标题时,它会切换<h2>的标签<input>,就像典型的 Todos 示例一样。

我将事件添加到相关模板,如下所示:

Template.network_edit.events = {}

Template.network_edit.events['click #network-description'] = -> 
    Session.set('editing_network_description',true)
    Meteor.flush()
    focus_field_by_id('network-description-input')

Template.network_edit.events['click #network-title'] = -> 
    Session.set('editing_network_title',true)
    Meteor.flush()
    focus_field_by_id('network-title-input')

The focus_field_by_id函数是,

  var focus_field_by_id = function (id) {
  var input = document.getElementById(id);
  if (input) {
    input.focus();
    input.select();
  }
};

一切都按预期进行,但是当我单击#network-description,我在控制台中看到一个错误:

Uncaught TypeError: Cannot read property 'parentNode' of null

在第 600 行抛出liveui.js。当我点击#network-title,我没有收到这样的错误。

如果我颠倒事件的顺序,将#network-title首先是事件,然后是network-description其次,当我单击#network-title反而。通常,添加的第一个事件会引发此错误,但后续事件不会引发此错误。

正如我所说,一切似乎都工作正常(输入出现、获得焦点等),但错误令人不安,我可能错过了一些东西。


啊哈,我能够重现这个。

这是在事件处理期间 DOM 发生变化时发生的错误。拨打电话后Meteor.flush(),事件的原始目标不再在模板中。 Meteor 的事件处理代码可能会在检查第二个处理程序是否适用时卡住,这就是为什么第一个处理程序似乎崩溃了。该错误是无害的,您没有做错任何事情。

正在为下一个版本重写事件处理,并且我针对这种情况进行了回归测试,新代码已经通过。

感谢您的报告和您的耐心等待。

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

使用 Meteor 进行就地编辑:无法读取 null 的属性“parentNode” 的相关文章

  • 更新 Meteor 中的嵌套数组

    这是我的架构 id FJwSEMdDriddXLKXh name t number 5 owners id 1 name Name address Address type Type gender Gender notes 单击后 我将在所
  • 如何使用 Meteor Spacebars 模板动态渲染 HTML?

    假设我正在存储 div name div and div age div 在我的数据库中 然后我想获取第一个 HTML 字符串并将其呈现在模板中 gt template1 它只渲染第一个字符串 name 车把在里面 然后我想给出新生成的模板
  • 使用 account.ui 包验证电子邮件

    我想在创建某个用户时发送验证电子邮件 我使用帐户密码包 因此在我的代码中调用任何帐户方法 我在文档中读到我需要调用 Accounts sendVerificationEmail userId email 但问题是我不知道什么时候调用它 我尝
  • Meteor 中的触摸事件

    我开始使用 Meteor 做的第一件事是开始为手机 平板电脑编写基于触摸的 Web 应用程序 以下是重现问题的方法 第一步 创建一个空白项目 meteor create touch example cd touch example mete
  • 在流星收集加载时显示加载程序

    我有一个模板 task list 看起来像这样 each tasks gt task each Template task list tasks返回一个集合 在用户界面中 加载似乎需要一些时间 当集合正在加载时 我想显示一个加载指示器 关于
  • 如何强制 Meteor 重新加载订阅?

    在我的应用程序中 sections是一个链接到的集合courses通过一个名为course sectionIds 初始加载工作正常 但在管理面板中添加部分时遇到非反应式连接问题 这是路线 route adminCourse path adm
  • 如何动态突出显示网页上的字符串?

    我想创建带有 url 的页面 例如 http xyzcorp schedules 2015Aug24 Aug28 Jim Hawkins http xyzcorp schedules 2015Aug24 Aug28 Billy Bones
  • Meteor.setTimeout 和 Meteor.methods 之间的并发

    在我的 Meteor 应用程序中实现回合制多人游戏服务器 客户端通过发布 订阅接收游戏状态 并且可以调用 Meteor 方法sendTurn将回合数据发送到服务器 他们无法直接更新游戏状态集合 var endRound function g
  • 在 Meteor 中运行示例的问题

    我正在测试 Meteor 示例 这是我运行时看到的meteor在待办事项示例中 Unexpected mongo exit code 100 Restarting Unexpected mongo exit code 100 Restart
  • 流星内存不足

    我正在使用流星来制作报废引擎 我必须执行一个 HTTP GET 请求 这会向我发送一个 xml 但这个 xml 大于 400 ko 我得到一个异常 内存不足 result Meteor http get http SomeUrl com 致
  • 流星图像、CSS、“普通”Web 服务

    我经常看到这个问题出现 如何在我的 Meteor 网站上放置图像 如何使用 Meteor 托管 标准 网页内容 我尝试添加一个 img src img myimage png 标签但没有图像显示 如何在 Meteor 站点上托管一些文件 将
  • 如何使用永远和启动脚本在 ubuntu 上修复“错误:MONGO_URL 必须在环境中设置”?

    我刚刚在 EC2 ubuntu 服务器上部署了一个 Meteor js 应用程序 我安装了forever https npmjs org package forever并将以下启动脚本添加到 etc init meteor conf sta
  • 为什么函数不可序列化?

    背景 在 Meteor 文档中Meteor call http docs meteor com full meteor call 它写道 如果您将回调函数作为最后一个参数 它不能作为该方法的参数 因为函数不可序列化 我跑过类似的东西Mete
  • Mongodb 聚合使用 $group 两次

    我在 mongo 中有一堆文档 其结构如下 id number 2 colour id name Green hex 00ff00 position id name Defence type position ageGroup id nam
  • MeteorJS:用户集合如何公开新字段

    我在用户集合中添加了新字段 但是当我在客户端 Meteor user cart 中访问它时 cart 是我的新字段 其未定义 如何公开新字段 购物车 以便可以在客户端中访问 最简单的方法是添加一个null发布者将自动发送数据 无需订阅 请务
  • 使用 Meteor 中的 D3 访问 csv 文件

    我已经使用 D3 成功渲染了一个 HTML 表格 显示了 csv 文件中的数据 但是当我将相同的代码移入 Meteor 项目时 我遇到了问题 传递到 d3 csv 回调中的数据对象一次拾取 HTML 文件 1 行 而不是 csv 数据 仅当
  • Meteor 的不同数据库和前端

    假设我想在 Meteor 的后端使用与 Mongo 不同的数据库 并且还想在前端使用像 D3 js 这样的可视化库 目前可能吗 如果不自己添加的话 会有多复杂 谢谢 https github com meteor meteor tree m
  • 重新渲染列表模板导致页面滚动到顶部

    我有一些模板 大致如下所示
  • 当 Meteor 响应式模板因数据订阅更改而更新时,如何防止窗口焦点发生变化?

    我有一个很长的页面 它包含对模板的引用 其中一些模板呈现数据 页面上的模板之一已订阅集合 当集合更改时 该模板中的视图将呈现那些已添加或更改的项目 它做得很好 并且不会重新加载页面 问题在于 当数据呈现时 页面焦点会跳转到该模板 模板呈现的
  • handlebars:如何访问数组?

    我有以下简化文件 channel Channelname users userId 1 userId 2 userId 3 我如何访问 userId each 像这样循环 each channels channel each channel

随机推荐