【发布时间】:2015-10-07 14:30:37
【问题描述】:
我已经使用 ember cli 设置了一个简单的 api 和一个新的 ember 应用程序
但是,虽然我可以获得完整的“项目”列表,但我无法使用参数让单个项目工作。
我的文件设置如下:
/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 如下:
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);
}
});
我做错了什么?
提前致谢!
【问题讨论】:
-
模型(参数)?应该是模型:函数(参数)
-
谢谢!我原来是这样的。我改回来了,还是什么都没有。
-
控制台说什么,有什么错误吗?
-
另外 {{name}} 应该参考模型 {{model.name}}
-
model(params)很好(作为 ES6 语法的一部分)。