Heyy !!
我无法将模型传递给ember cli中的路线。我制作了一个简单的应用程序,其中包含帖子和作者以及标题。当您点击标题时,您会转到帖子详细信息,当您点击作者时,您会转到作者的个人资料。我的问题是我去相应的用户,但当我刷新页面时,我在作者路线中得到一个n错误。我不知道为什么,我猜测它与我刷新时没有再次获取的模型有关,因为它使用link-to helper传递模型
我的代码(客户端):
应用程序/模型/ author.jsimport DS from 'ember-data';
export default DS.Model.extend({
posts: DS.hasMany('post', {async: true}),
name: DS.attr('string'),
url: DS.attr('string')
});
应用程序/模型/ post.js
import DS from 'ember-data';
var attr= DS.attr;
export default DS.Model.extend({
author: DS.belongsTo('author'),
title: attr('string'),
description: attr('string'),
date: attr('date'),
url:attr('string'),
});
应用程序/路由/ author.js
import Ember from 'ember';
export default Ember.Route.extend({
setupController: function(controller, model) {
model.reload();
controller.set('model', model);}
});
应用程序/模板/ posts.hbs
<div class="container" style="width:70%">
{{#each model as |post|}}
<div class="well">
<div class="media">
<a class="pull-left" >
<img class="media-object" src={{post.url}} style="width:200px;height:200px">
</a>
<div class="media-body">
<h1>{{#link-to 'post' post}}{{post.title}}{{/link-to}}</h1>
<h4>Posted by: {{#link-to 'author' post.author.id}} {{post.author.name}}{{/link-to}} </h4>
<p>{{post.description}}</p>
</div>
</div>
</div>
{{/each}}
</div>
我的代码(服务器):
var authors=[];//list of authors
var profileRouter= express.Router();
profileRouter.get('/', function(req, res) {
res.send({
'authors':authors
});
});
profileRouter.get('/:id', function(req, res) {
res.send({
'author': authors.find(function(user){
return author.id==req.params.id
// id: req.params.id,
})
});
});
app.use('/api/author', profileRouter);
答案 0 :(得分:1)
link-to
正在传递模型,这是正确的,这在页面刷新时不会发生。您需要在作者路径上定义模型钩子(在传递模型时不会调用它) -
model: function(params) {
return this.store.find('author', params.id);
}