【问题标题】:is RactiveJS 0.5 backwards compatible?RactiveJS 0.5 向后兼容吗?
【发布时间】:2014-07-05 23:40:36
【问题描述】:

我问这个是因为在边缘版本更新到 0.5.3 之后,它导致我的应用程序与观察者有问题。这意味着,我有一个队列,我正在听它对current 属性的更改(在 0.4.x 上完美运行(6 月 29 日发布),不记得确切的构建版本,但那是日期),并且现在从队列中删除项目后,它会显示'current' attribute of undefined。当它试图检查队列中不存在的另一个项目时。我明天会尝试创建一个ssce 并更新它。

【问题讨论】:

  • 我们尽量保持向后兼容,但也有很多变化 - 请参阅changelog 了解详情。听起来像是一个特别的项目可能会导致这种情况 - 以前,观察者回调是在 try-catch 块内运行的,但这使得调试问题变得困难,因此不再是这种情况。因为这些回调会立即运行,所以如果您尝试在 foo 有值之前访问 foo.current,您会看到以前不会出现的错误。
  • 主要是我的错 :P 当 Ractive 吞下错误时,很难调试这些东西。而且很难向错误记录库报告。这是问题所在:github.com/ractivejs/ractive/issues/873

标签: ractivejs


【解决方案1】:

列出了 0.5.0 中的重大更改here on github

其中之一是 Ractive 不再忽略观察者或表达式评估中的错误。很可能它在观察者的初始化中,这对您的用例无关紧要,但现在正在引起问题。比如:

ractive.observe('foo', function(newValue, oldValue, keypath){
    if(oldValue.current) {

    }
})

【讨论】:

  • if (e && e.current) {...} 而不是 if (e.current) { ... } 在阅读了关于 Joseph 对 Ractive 吞咽错误的评论的 github 问题后解决了我的问题,因为它吞下了我的 e,这有时可能是未定义的。
猜你喜欢
  • 2018-01-19
  • 2017-07-11
  • 2023-03-19
  • 2018-07-19
  • 2010-11-07
  • 2016-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多