Привязать класс к динамическому сервисному свойству

У меня есть служба, которую я называю state, которая просто обрабатывает состояния загрузки, и я могу расширить ее до всего, что захочу в будущем. Мне нужна была эта служба, чтобы разные компоненты могли общаться друг с другом таким образом, чтобы они знали, загружается ли другой компонент или что-то делает.

Во всяком случае, у меня есть эта кнопка, которую я использую в разных местах, которая просто отправляет действие, а затем превращается в счетчик, пока это действие не будет завершено.

В настоящее время анимация загрузки работает так: classNameBindings: ['state.working'],

Однако, если теперь у меня есть две из этих кнопок на экране одновременно, и я вызываю this.state.set('working',true);, все кнопки теперь вращаются.

Я бы предпочел передать имя свойства компоненту кнопки, который сообщает ему, какое свойство следует отслеживать в службе state, чтобы определить, следует ли добавлять класс working или нет.

У меня просто возникли проблемы с выяснением того, как заставить это работать в компоненте.

Как я могу заставить привязку класса отслеживать имя динамического свойства, которое будет передано компоненту как что-то вроде loadingPropertyName, чтобы каждый компонент кнопки мог отслеживать другое свойство для его привязки класса working.


person Jordan    schedule 10.06.2016    source источник


Ответы (1)


Вы можете сделать что-то вроде этого:

init() {
  this.set('classNameBindings', 'state.'+this.get('stateProp'));
  this._super();
}
person Lux    schedule 12.06.2016