首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过link-to helper传递关系模型?余数2

通过link-to helper传递关系模型?余数2
EN

Stack Overflow用户
提问于 2015-11-13 02:15:05
回答 1查看 338关注 0票数 1

嘿!!

我在将模型传递到ember cli中的路由时遇到了问题。我正在制作一个简单的应用程序,其中帖子有作者和标题。当你点击标题时,你会进入帖子的详细信息,当你点击作者时,你会进入作者的个人资料。我的问题是,我转到相应的用户,但当我刷新页面时,我在作者路径中得到一个n错误。我不知道为什么,我猜这与我刷新时没有再次获取模型有关,因为它使用link-to helper传递模型

我的代码(客户端):

app/models/Auth.js

代码语言:javascript
运行
复制
import DS from 'ember-data';

export default DS.Model.extend({
  posts: DS.hasMany('post', {async: true}),
  name: DS.attr('string'),
  url: DS.attr('string')
});

app/model/post.js

代码语言:javascript
运行
复制
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'),
});

app/routes/Auth.js

代码语言:javascript
运行
复制
import Ember from 'ember';

export default Ember.Route.extend({
   setupController: function(controller, model) {
   model.reload();       
   controller.set('model', model);}
 });

app/template/posts.hbs

代码语言:javascript
运行
复制
    <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>

我的代码(服务器):

代码语言:javascript
运行
复制
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);
EN

回答 1

Stack Overflow用户

发布于 2015-11-13 02:27:16

您认为link-to传递模型是正确的,刷新页面时不会发生这种情况。您需要在作者路径上定义模型钩子(在传递模型时不会调用)-

代码语言:javascript
运行
复制
model: function(params) {
    return this.store.find('author', params.id);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33678448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档