除了调用init之外,我不确定Ractive组件的生命周期是什么。 例如,何时可以直接访问DOM? 我试图使用流行的迷你线jQuery插件,但我从来没有让它工作。 我使用了一个指令而且 - 瞧 - 可爱的迷你线。
有关组件在Ractive中接收哪种事件和回调的任何文档?
答案 0 :(得分:4)
简短的回答是,在最新的稳定版本中,它是未定义的 - 在某些情况下,在组件附加到DOM之前调用组件的init
方法。这是一个错误。
下一版本不再是这种情况,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
}
});
在从DOM中删除组件之前将触发teardown
事件 - 例如,在您的init
方法中,您可以添加一些代码来执行必要的清理(如果有):
init: function () {
this.on('teardown', function () {
// cleanup
}
},
...
如果有的话,我欢迎您对其他您认为缺少的活动/挂钩有任何反馈。
答案 1 :(得分:2)
图书馆现在非常成熟。在模板/组件中使用from django.contrib.auth.models import User
class WatchStock(models.Model):
user = models.ForeignKey(User)
...
或Ractive.on('render', ...);
来访问DOM。请参阅:http://docs.ractivejs.org/latest/lifecycle-events。
从onrender
版本开始就是这样。