【发布时间】: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