如何在 Ember.js 中的组件中获取存储
how to get the store in a component in ember.js
我到底如何掌握组件内部的存储?我正在尝试创建一个从商店返回结果的自动完成组件。
App.AutoCompleteComponent = Ember.Component.extend({
//-------------------------------------------
// Ember Properites
//-------------------------------------------
content: Ember.ArrayController.create(),
//-------------------------------------------
// Instance Properties
//-------------------------------------------
queryText: "",
componentItemSelected: null,
//-------------------------------------------
// Observers
//-------------------------------------------
queryTextChanged: function () {
this.updateContent(this.get("queryText"));
}.observes("queryText"),
//-------------------------------------------
// Instance Methods
//-------------------------------------------
selectItem: function (item) {
this.set("componentItemSelected", item);
},
updateContent: function (queryText) {
if (queryText.length <= 5) {
console.log('not greater than 5 chars');
return;
}
this.get("content").setObjects([]);
var items = App.Company.find();
this.get("content").setObjects(items);
}
});
这是我的公司模型
App.Company = DS.Model.extend({
name: DS.attr('string'),
created_at: DS.attr('date'),
updated_at: DS.attr('date'),
people: DS.hasMany('person')
});
我试过:
-
this.get('store')
-
DS.Store.find('company')
- 只是
store
-
App.Company.find()
我总是得到一个Uncaught TypeError ... has no method 'find'
真正的答案是你不应该。 组件应该与外部世界无关,添加对存储的依赖关系会破坏该概念。 实际上,您应该事先获取模型(在路由或控制器中,具体取决于逻辑)并将它们传递到组件中。
https://github.com/emberjs/data/blob/master/TRANSITION.md
通常,直接在组件中查找模型是一种反模式,您应该更愿意在包含该组件的模板中传入所需的任何模型。
现在我已经说过了,只需将存储传递到组件中即可。 它位于路由和控制器上,因此当您创建组件时,将存储中的组件发送作为参数之一,然后可以使用this.get('store')
{{auto-complete store=controller.store}}
或
{{auto-complete store=store}}
http://emberjs.jsbin.com/OxIDiVU/720/edit
相关文章:
- 如何在另一个组件中获取指令/组件实例
- Vue.js获取组件中的一个元素
- 从子级获取React dom组件
- React - 从 DOM 元素获取组件以进行调试
- 如何获取子组件的内容Angular 2中的子组件
- 在 ExtJS 中获取父组件
- 如何创建一个组件,我可以设置在 Angular 2 中的属性中获取 URL 数据
- 从子窗体组件ReactJS中获取道具
- Vue.js从另一个组件获取数据
- 如何获取当前Vue组件的DOM元素
- React Native:将id设置为一个组件并获取该组件's的id
- 如何在Vue.js中获取组件元素的offsetHeight
- 在react组件中使用ajax获取实时更新的数据
- 从淘汰js组件中获取数据
- 反应:从父组件获取子组件数据
- React Redux 子组件获取父组件设置的全局属性,而无需通过 props 传递它
- 如何将数据从子组件获取到 props 中传递的按钮的 onclick 中
- 从其他组件获取参数[React JS]
- 可以't从子组件获取要在父组件上执行的方法
- 组件获取重复的内容,而不是刷新