不确定执行此操作正确的“Ember Way”方法。

我有以下模板,其中我想拥有三个task-item-list组件实例,每个实例具有不同的taskState值。显然,我想摆脱神奇的数字。

<h4>Tasks:</h4>

<div><h5>Backlog:</h5>
  {{ task-item-list tasks=model taskState=101 }}
</div>

<div><h5>Working:</h5>
  {{ task-item-list tasks=model taskState=202 }}
</div>

<div><h5>Done!</h5>
  {{ task-item-list tasks=model taskState=303 }}
</div>

多亏了this discussion,我可以在config/environment.js文件中定义常量,并在模型,测试等中使用它们,但不能(据我所知)在模板中。

有没有一种使用常量的方法,或者有更好的方法可以做到这一点?我可以看到该组件的子类化,但是我认为这不是一个很好的解决方案。

谢谢!

最佳答案

您是否尝试过将env注入(inject)您的组件中?像这样的东西:

app/initializers/inject-env.js

import env from '../config/environment';

export function initialize(container, application) {
  application.register('env:main', env, { singleton: true, instantiate: false });
  application.inject('component', 'env', 'env:main');
}

export default {
  name: 'inject-env',
  initialize: initialize
};

然后,在任何组件中,您都可以使用config/environment.js属性获取env的内容。例如{{env.environment}}将显示当前环境。

如果只想在task-item-list组件中而不是在所有组件中进行注入(inject),则可以使用:
application.inject('component:task-item-list', 'env', 'env:main');

关于ember.js - Ember模板中的访问常量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28901987/

10-12 12:20
查看更多