Как добавить class CSS в элемент тела в Meteor?

Я начинаю проект Meteor, и я хочу использовать разные classы css на разных страницах. Если я добавлю class css в тело, я получу:

Attributes on  not supported 

Единственный способ, которым я нашел, – это добавить class, используя JS. Есть лучший способ сделать это?

Стандартная практика заключается в том, чтобы установить class тела в соответствующие крючки пути:

 Router.map(function() { this.route('someRoute', { path: '/someAddress', onBeforeAction: function() { $('body').addClass('someRouteBodyClass'); this.next(); }, onStop: function() { $('body').removeClass('someRouteBodyClass'); }, ... }; }); 

Принятое решение, использующее маршрутизатор, велико. Существует также решение для установки classа тела для всего приложения:

 Meteor.startup(function() { $('body').addClass('classes-for-body'); }); 

Вы также можете выполнять действия в шаблонных «визуализированных» и «разрушенных» обратных вызовах.

 Template.myTemplate.rendered = function(){ $('body').addClass('my-class'); } Template.myTemplate.destroyed = function(){ $('body.my-class').removeClass('my-class'); } 

вы всегда можете сделать стиль на каждой странице html. не лучшая практика. но, это работает. : D

Еще один способ добавить class в зависимости от вашего маршрута:

 var currentCategory = new ReactiveVar(); Router.onAfterAction(function() { var categoryName = Router.current().options.route._path.split('/')[1]; currentCategory.set(categoryName); }); Template.mainLayout.helpers({ currentCategory: function() { return currentCategory.get(); } }); 

  

Это то, что я использую для добавления classа body только на домашнюю страницу.

 Router.route('/', { name: 'landing', onAfterAction: function() { setTitle(); }, onBeforeAction: function(){ $('body').addClass('home'); this.next(); }, onStop: function() { $('body').removeClass('home'); }}); 

С FlowRouter он работает с:

 FlowRouter.group({ prefix: '/admin', triggersEnter: [function() { $('body').addClass('admin-layout'); }], triggersExit: [function() { $('body').removeClass('admin-layout'); }], });