【问题标题】:Ember Routing - Dynamic Segment - Passing model through <LinkTo>Ember 路由 - 动态段 - 通过 <LinkTo> 传递模型
【发布时间】:2020-05-23 11:28:26
【问题描述】:

我使用的是 Ember 3.18,但动态段有问题。这是我的router.js

Router.map(function() {

    this.route('posts');

    this.route('post' , {path:"/post/:post_id"});

});

当我尝试使用以下命令执行从帖子路由(包含所有帖子)到 post/:post_id(显示特定帖子的详细信息)的转换时

<div>
{{#each this.data as |data|}}

   <LinkTo @route="dashboard.inbox-mail" @model={{data.id}}>

    <div class="card">
      <div>
        <p class="name">{{data.name}}</p>
      </div>
      <div>
        <p class="title">{{data.title}}</p>
        <p class="date">{{data.timestamp}}</p>
      </div>
    </div>

  </LinkTo>

 {{/each}}
</div>

它不执行到 post/:post_id 的转换。数据包含以下属性

id - 字符串 名称 - 字符串 标题 - 字符串 消息 - 字符串 时间戳 - 字符串

我的目标是将 post id 传递给 post/:post_id 并在 post/:post_id 的模型挂钩中进行 API 调用。

我能够使用下面的代码执行转换,但缺点是没有调用 beforemodel 和 model 钩子。将整个数据作为模型传递导致不调用模型和 beforemodel

<div>
{{#each this.data as |data|}}
   <LinkTo @route="dashboard.inbox-mail" @model={{data}}>
    <div class="card">
      <div>
        <p class="name">{{data.name}}</p>
      </div>
      <div>
        <p class="title">{{data.title}}</p>
        <p class="date">{{data.timestamp}}</p>
      </div>
    </div>
  </LinkTo>
  {{/each}}
</div>

【问题讨论】:

  • 解释(帖子和帖子页面)与代码sn-p(收件箱-邮件)不匹配,正确的sn-p和解释会更容易帮助。 ember-twiddle.com 的复制品会更有帮助。
  • 当它“不执行转换”时,您是否还会收到任何错误消息?
  • 您可能在您的 dashboard.index 路由中缺少序列化钩子。如果您提供该路线的副本,我将完全回答您的问题。
  • 您可以尝试重命名块参数,使其与属性不同吗?例如,|datum| 而不是 |data|

标签: dynamic ember.js model routes


【解决方案1】:

this.data 更改为

{{#each @model as |data|}} 

这是一个与您类似的好例子: https://emberigniter.com/getting-started-ember-octane-tutorial/

【讨论】:

    猜你喜欢
    • 2013-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-26
    • 2014-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多