2014-07-05 114 views
0

我在问这是因为在边缘版本更新到0.5.3之后,它导致我的应用程序与观察者有问题。这意味着,我有一个队列,我正在听它对current属性的更改(在0.4.x(6月29日发布)上完美工作,不记得确切的内部版本,但这是日期),现在从队列中删除项目它说'current' attribute of undefined。因为它试图检查队列中不存在的另一个项目。我会尝试明天制作一个ssce并更新它。是RactiveJS 0.5向后兼容?

+0

我们试图让事情向后兼容的可能,但也出现了许多变化 - 参见[更新日志](https://github.com/ractivejs/ractive/blob/ dev/CHANGELOG.md)以获取详细信息。这听起来像是一个特别的项目可能导致了这一点 - 以前,观察者回调是在try-catch块内运行的,但是这使得很难调试问题,所以不再是这种情况。因为这些回调立即运行,所以如果你在'foo'有一个值之前尝试访问'foo.current',你会看到一个你以前没有的错误。 –

+0

大部分是我的错:P当Ractive吞咽错误时很难调试这些东西。很难向错误记录库报告。问题是这样的:https://github.com/ractivejs/ractive/issues/873 – Joseph

回答

1

在0.5.0重大更改列here on github

其中之一是,Ractive不再以观察员或表达式的计算忽略错误。更有可能它在观察者的初始阶段对于您的用例无关紧要,但现在正在引发一个问题。喜欢的东西:

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

    } 
}) 
+0

'if(e && e.current){...}'而不是'if(e.current){...}在阅读关于约瑟夫对活性吞咽错误的评论的github问题之后解决了我的问题,因为它吞咽了我的'e',有时候这可能是未定义的。 – Eduard