我正在开发一个Ember项目,我有一个按钮,可以在DOM中插入一些HTML标签。我想调用一个javascript函数来加载那些新的DOM元素。这是我的代码:
<script type="text/x-handlebars" id="doc">
{{#if isEditing}}
{{partial 'doc/editbox'}}
{{/if}}
...
</script>
部分doc / editbox只包含一些html标签。
我已尝试将javascript作为启动插入的单击按钮事件的一部分运行,但js不起作用,因为DOM元素尚不存在。我看到这篇文章: How to Run Some JS on an Element in the Index Template in Ember.js RC2 建议使用Ember.run.next,但是由于View'Doc'最初没有那些额外的DOM元素(直到点击按钮),因此无效。如何让javascript函数在正确的时间运行?
答案 0 :(得分:1)
在控制器中添加观察
watchEditing: function(){
if (this.get('isEditing')){
Ember.run.scheduleOnce('afterRender', function(){
//do it here
});
}
}.observes('isEditing')
另外,您可以使用render
代替partial
并创建关联的视图,并在该视图的didInsertElement中运行它。