2014-02-18 55 views
2

除了被調用的init之外,我不確定Ractive組件的生命週期是什麼。 例如,何時可以直接訪問DOM? 我試圖使用流行的sparklines jQuery插件,但我從來沒有得到它的工作。 我使用了一個指令,而 - 瞧 - 可愛的迷你曲線。Ractive組件的生命週期

有關組件在Ractive中接收什麼樣的事件和回調的任何文檔?

回答

4

簡而言之,在最近的穩定版本中,它是未定義的 - 在某些情況下,組件的init方法在組件被附加到DOM之前被調用。這是一個錯誤。

它不再在下一版的情況下,0.4.0:http://cdn.ractivejs.org/edge/Ractive.min.js

截至0.4.0,它看起來像這樣:

Ractive.components.sparkline = Ractive.extend({ 
    beforeInit: function (options) { 
    // called before any setup happens, in case you 
    // need to transform `options` in any way 
    }, 
    init: function (options) { 
    // called immediately after the initial render, 
    // when the component is in the DOM 
    }, 
    complete: function() { 
    // called when any initial transitions have 
    // completed 
    } 
}); 

一個teardown事件將組件之前被解僱從DOM刪除 - 在您的init方法,例如,你可以添加一些代碼,這樣做是必要的清理(如果有的話):

init: function() { 
    this.on('teardown', function() { 
    // cleanup 
    } 
}, 
... 

如果有其他事件/鉤子,您覺得缺少任何反饋,歡迎您提供任何反饋。

+0

這是個好消息。謝謝! –

+1

0.6中有一個新的生命週期http://docs.ractivejs.org/0.6/lifecycle-events – Codler