将类绑定到动态服务属性

时间:2016-06-10 16:07:46

标签: ember.js service computed-properties

我有一个我称之为state的服务,它只处理加载状态,我可以将它扩展到我将来想要的任何东西。我需要这项服务,所以我可以让不同的组件以某种方式相互通信,以便他们知道另一个组件是否正在加载或执行某些操作。

无论如何,我有这个按钮,我在不同的地方使用它只发送一个动作,然后变成一个微调器,直到该动作完成。

加载动画目前的工作方式是classNameBindings: ['state.working'],

但是,如果我现在同时在屏幕上显示其中两个按钮,并且我呼叫this.state.set('working',true);所有按钮现在都在旋转。

我宁愿将属性名称传递给按钮组件,该组件告诉它在state服务上要监视哪些属性以确定它是否应该添加working

我只是在弄清楚如何在组件中完成这项工作时遇到一些麻烦。

如何让动态属性名称的类绑定监视将像loadingPropertyName那样传递给组件,这样每个按钮组件都可以为它的working类绑定查看不同的属性。

1 个答案:

答案 0 :(得分:0)

您可以这样做:

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