【发布时间】:2015-11-26 10:21:13
【问题描述】:
我的应用中有一个search 模型,当用户在搜索框中输入内容时,它会动态加载。在keyUp() 上调用this.store.query('search', {query: "xyz"}) 并从API 后端获取数据。但是,看起来我在这里遗漏了一些东西,因为在 Ember Inspector 中我看不到要为 search 模型加载的数据。无论如何,这不是我最关心的问题,因为我不知道 ember 检查器是动态加载存储中的数据还是仅在刷新时加载数据。我的问题是我无法访问模板中从服务器返回的数据。
我不得不提一下,我没有搜索结果的路径,这更像是类似 IMDb 的搜索框,其中结果被加载为搜索框类型的自动完成即时结果。
我的代码:
/templates/components/search-box.hbs
{{input value=query}}
<div>
// search results should be displayed here
</div>
/templates/components/app-bar.hbs
<nav>
{{#link-to 'index' tagName='button'}}Home{{/link-to}}
{{search-box value=query action="search"}}
</nav>
/templates/application.hbs
{{app-bar action="search"}}
{{outlet}}
/components/search-box.js
import Ember from 'ember';
export default Ember.TextField.extend({
keyUp: function(e){
if (this.get('value'))
this.sendAction('action', this.get('value'));
}
});
/components/app-bar.js
import Ember from 'ember';
export default Ember.Component.extend({
actions: {
search: function(query){
this.sendAction('action', query);
}
}
});
/controllers/application.js
import Ember from 'ember';
export default Ember.Controller.extend({
actions: {
search: function(query){
this.store.query('search', {text: query});
}
}
});
this.store.query('search', {text: query});不应该自动将记录推送到商店吗?如果是这样,我如何在我的 /templates/components/search-box.hbs 组件中访问它们?
谢谢!
【问题讨论】:
标签: javascript ember.js ember-data ember-cli