2014-07-05 151 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