Ractive组件的生命周期

时间:2014-02-18 02:43:07

标签: jquery ractivejs

除了调用init之外,我不确定Ractive组件的生命周期是什么。 例如,何时可以直接访问DOM? 我试图使用流行的迷你线jQuery插件,但我从来没有让它工作。 我使用了一个指令而且 - 瞧 - 可爱的迷你线。

有关组件在Ractive中接收哪种事件和回调的任何文档?

2 个答案:

答案 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版本开始就是这样。