Jquery 向Ember添加自定义脚本

Jquery 向Ember添加自定义脚本,jquery,ember.js,Jquery,Ember.js,因此,在我的应用程序中,当它从rails DB端加载到一个表中时,它来得很晚,我的小$('tr:even').addClass(“trAlt”);-仅读取1 tr,不应用css类进行样式设置。我已将脚本放置在didInsertElement上,如下所示: App.RecordsView = Ember.View.extend({ templateName: 'records/index', contextBinding: 'App.RecordController', d

因此,在我的应用程序中,当它从rails DB端加载到一个表中时,它来得很晚,我的小$('tr:even').addClass(“trAlt”);-仅读取1 tr,不应用css类进行样式设置。我已将脚本放置在didInsertElement上,如下所示:

App.RecordsView = Ember.View.extend({
    templateName: 'records/index',
    contextBinding: 'App.RecordController',
    didInsertElement: function(){
         $('tr:even').addClass("trAlt")
    }
});
但是初始负载是1tr行(标题),然后即使视图发生变化,Ember也不会触发。
大多数代码与此相同

您可以使用纯CSS自动设置表格样式吗?这将应用于行,即使它们是在调用
didInsertElement()
之后添加的

CSS:

tr:nth-of-type(even) {
  background-color:red;
}

您可以观察控制器内容的
isLoaded
属性:

App.RecordsView = Ember.View.extend({
    templateName: 'records/index',
    contextBinding: 'App.RecordController',

    onRecordsLoaded: function () {
        $('tr:even').addClass("trAlt");
    }.observes('App.RecordController.content.isLoaded')
});

考虑使用
{{each}}
的无块形式,并将jQuery代码移动到每行的didInsertElement,如下所示:

App.RecordsView = Ember.View.extend({
    templateName: 'records/index',
    contextBinding: 'App.RecordController'
});

App.RecordRowView = Ember.View.extend({
    templateName: 'records/record',
    tagName: 'tr',
    didInsertElement: function(){
      $('tr:even').addClass("trAlt")
    }
});

// in records/index.hbs
{{each controller itemViewClass="App.RecordRowView"}} 

我喜欢这个想法,但不理解App.MyView,这是从哪里来的?我的呼吁不起作用。I get:Uncaught错误:断言失败:无法在路径“App.MyView”ember.js:52处找到视图