加载数据时的ember视图事件

时间:2014-10-22 13:30:42

标签: javascript jquery html ember.js view

我有这个Ember View代码:

{{#view "tabla"}}
    <table>
        ...
    </table>
{{/view}}

我需要在呈现异步调用的数据后向HTML表运行javascript代码。

我试着这样做:

App.TablaView = Ember.View.extend({
didInsertElement : function() {
    Ember.run.scheduleOnce('afterRender', this, function() {
       javascript code..
     });
 }

但是在没有数据的情况下渲染表时执行。

我还尝试在异步函数的回调中调用javascript代码,但数据尚未呈现给视图。

执行绑定后是否触发了任何事件?

谢谢!

1 个答案:

答案 0 :(得分:0)

我有一些相同的问题,我最终解决了这个问题:

didInsertElement: function() {
    _this = this;
    if (this.get('element').addEventListener) {
       this.get('element').addEventListener ('DOMNodeInserted', function() {
          Ember.run.scheduleOnce('afterRender', _this, function() {
              javascript code..
          });
       }, false);
    }
   //for images
   $( "img",this.$()).load(function() {
   Ember.run.scheduleOnce('afterRender', _this, function() {
          javascript code..
     });
   });
}

请注意,在此解决方案中,您的&#34; javascript代码..&#34;代码可以多次调用(和执行)。这不是我的问题,但它可能是你的问题。