我正在玩拖放UI。每个人都有一个可以拖动到某个位置的组件,并且该位置的引用会保存在关联的位置模型中。多个不同的位置将是可行的,因此它需要是一个单独的模型。
在创建每个人组件时,我想查询商店以找到某个位置,然后使用它来设置页面上组件的绝对位置
我尝试在不同的lifecycle hooks期间查询商店以找到某个 posiiton ,但该商店似乎无法使用。何时何地可以做到这一点?
我的另一个想法是,我应该为路线控制器中的每个学生找到某个位置,然后将这些传递到组件中,但我真的希望尽可能多地保留组件。
答案 0 :(得分:1)
通常,不鼓励访问组件中的商店,但您绝对可以这样做。 store
是一项服务,因此您可以将其注入组件中。为此,您需要创建一个这样的初始化器:
export function initialize(application) {
application.inject('component', 'store', 'service:store');
}
export default {
name: 'component-injections',
after: 'ember-data',
initialize: initialize
};
有了这个,商店将以组件形式提供,您可以随意使用它。