Javascript 如何更改余烬中不同页面的正文背景

Javascript 如何更改余烬中不同页面的正文背景,javascript,css,ember.js,background,Javascript,Css,Ember.js,Background,我正在开发余烬的应用程序,我想有注册页面和登录页面的白色背景,其余的页面应该有灰色背景 目前,我正在更改控制器(application.js文件)中body标签的颜色 有什么建议可以让这种方式变得更好/更干净吗?我们必须处理来自客户的大量任意请求,其中最简单的方法就是针对特定页面,因此我们将路由名称添加到正文中 Ember.Route.reopen({ activate: function() { var cssClass = this.toCssClass(); // yo

我正在开发余烬的应用程序,我想有注册页面和登录页面的白色背景,其余的页面应该有灰色背景

目前,我正在更改控制器(application.js文件)中body标签的颜色


有什么建议可以让这种方式变得更好/更干净吗?

我们必须处理来自客户的大量任意请求,其中最简单的方法就是针对特定页面,因此我们将路由名称添加到
正文中

Ember.Route.reopen({
  activate: function() {
    var cssClass = this.toCssClass();
    // you probably don't need the application class
    // to be added to the body
    if (cssClass != 'application') {
      Ember.$('body').addClass(cssClass);
    }
  },
  deactivate: function() {
    Ember.$('body').removeClass(this.toCssClass());
  },
  toCssClass: function() {
    return this.routeName.replace(/\./g, '-').dasherize();
  }
});

也就是说,这是一个很大的污点,你可以创建一个
themexin
,并将其设置在路由上。这是一个更简单的版本:

Kit的答案很常见,我们对我们的应用程序也这么做。但是,如果您真的只需要在后台进行更改,则可以通过避免生成类名来简化它:

export default Ember.Route.extend({
  activate () {
    Ember.$('body').addClass('bg-white');
  },

  deactivate () {
    Ember.$('body').removeClass('bg-white');
  }
});
export default Ember.Route.extend({
  activate () {
    Ember.$('body').addClass('bg-white');
  },

  deactivate () {
    Ember.$('body').removeClass('bg-white');
  }
});