【发布时间】:2015-08-19 00:57:01
【问题描述】:
什么时候可以安全地调用 ractive 实例的 find(...) 方法并保证模板已经被渲染并且 DOM 元素可用?
背景:
我是 RactiveJS 的新手,正在用它构建我的第一个应用程序。我一直在实例化 Ractive 实例,然后在这些实例上调用诸如 find() 之类的方法来访问从我的模板呈现的元素。像这样的:
var ractive = new Ractive({ el: ..., template: ..., data: ..., etc });
var element = ractive.find('.some-template-element');
到目前为止,这一直运行良好,但我想知道我是否可能在这里遇到竞争条件,因为 ractive 似乎异步渲染模板。像上面这样编写代码是否安全,还是我需要将所有内容都移到这样的回调中?
ractive.on('complete', function() {
var element = ractive.find('.some-template-element');
});
信息太多:
在实践中,当然,我所做的比这个简单的伪代码更复杂。我正在创建使用 Ractive 作为内部实现细节的“小部件”。现在,我创建了这些小部件,然后开始在它们上调用方法。但是,如果 Ractive 方法还没有准备好立即调用,我将需要重组我的小部件以公开回调/承诺,一旦我知道我的 ractive 已经创建并可以使用,就会被调用。
我无法在 RactiveJS documentation 中找到详细信息,说明何时可以安全地调用 Ractive 上的各种函数,但我希望我只是漏掉了一些东西。
【问题讨论】:
标签: ractivejs