egg.js在controller返回的假数据,为什么模版页拿不到?

Eichner
  • 48

问题描述

准备使用egg-view-nunjucks写前端模版,在controller层给出假数据。但是试了一下,设置好的假数据前端模版拿不到。

官方给的案例都是在ctx.render里写对象然后直接传出去,就像path那种。但是考虑到后面还有文章列表这种假数据,肯定不能挤在一行写,所以想像article那样定义好再传过去,但是浏览器上能看到path不能看到article的值。

相关代码

// app/controller/test.js

  async articleDetail() {
    const ctx = this.ctx;
    const article = {
      title:'标题',
      content:'文章内容',
      created: '2020年01月01日 08:00:00',
      view_count: 978,
      user: {
        username: 'Admin'
      },
      content: '内容内容内容内容内容内容'
    };
    console.log('文章详情', article);
    await ctx.render('articleDetail.nj', { path: 'xxx' }, article );
  }
// app/view/artileDetail.nj

123
{{ path }}
{{ article }}
{{ article.title }}

期待的结果

好久没有写过egg.js,想知道怎么能把article传到模版。谢谢大家围观!

回复
阅读 224
1 个回答

controller写错了,应该是:

  async articleDetail() {
    const ctx = this.ctx;
    const article = {
      title:'标题',
      content:'文章内容',
      created: '2020年01月01日 08:00:00',
      view_count: 978,
      user: {
        username: 'Admin'
      },
      content: '内容内容内容内容内容内容'
    };
    console.log('文章详情', article);
    await ctx.render('articleDetail.nj', { path:'xxx', article } );
  }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏