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

发布于 2022-09-12 23:15:55 字数 851 浏览 32 评论 0

问题描述

准备使用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传到模版。谢谢大家围观!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

地狱即天堂 2022-09-19 23:15:55

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 } );
  }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文