我已经使用ember cli设置了一个简单的api和一个新的ember应用程序
然而,虽然我可以获得一个完整的“项目”列表,但我无法使用params获得单个项目。
我的文件设置如下:
/models
item.js
/routes
/items
index.js
show.js
/templates
/items
index.hbs
show.hbs
application.hbs
index.hbs
items.hbs
router.js
供参考,这是我在文件中的内容
我设置了 models / item.js a:
import DS from 'ember-data';
export default DS.Model.extend({
name: DS.attr('string')
});
我将代码添加到 router.js
import Ember from 'ember';
import config from './config/environment';
var Router = Ember.Router.extend({
location: config.locationType
});
Router.map(function() {
this.route('items', function() {
this.route('show', { path: '/:item_id' });
});
});
export default Router;
然后我创建了 templates / index.hbs
{{outlet}}
最后,添加了我的 templates / items / index.hbs
<ul>
{{#each model as |item|}}
<li>
{{#link-to 'items.show' item}}
{{item.name}}
{{/link-to}}
</li>
{{/each}}
</ul>
这可以按预期工作。
但是,当我单击链接(/ items / 1)时,它不再按预期执行。假设我没有使用任何把手变量({{item.name}}),它会正确显示items / show.hbs。例如,如果我只包含文本,this is my items/show.hbs
它将显示文本。当我加入时,{{name}}
会显示空白页
这是我的 templates / items / show.hbs
{{name}}
和我的 routes / items / show.js
import Ember from 'ember';
export default Ember.Route.extend({
model(params) {
return this.store.queryRecord('item', params.item_id);
}
});
我做错了什么?
提前致谢!
答案 0 :(得分:1)
在模板
中使用模型时,您似乎没有使用模型参考这是我的templates / items / show.hbs
{{name}} < This is a model's property- name
Correct usage: {{model.name}}
和我的路线/ items / show.js
import Ember from 'ember';
export default Ember.Route.extend({
model(params) {
return this.store.queryRecord('item', params.item_id);
}
});
使用哈希的方式
return Ember.RSVP.hash({
something: store.find('y', { study: params.study_id }),
somethingElse: store.find('x', 1),
});