gpt4 book ai didi

javascript - 动态段值

转载 作者:行者123 更新时间:2023-11-29 21:48:20 24 4
gpt4 key购买 nike

刚刚开始使用 Ember,对 ember 处理常见模式的方式有疑问。

我有以下 router.js:

export default Router.map(function() {
this.resource('posts', function(){
this.route('post', { path: "/:title" });
this.route('new');
});
});

我想知道如何使用帖子标题的值作为动态部分,以便帖子 url 显示为 /posts/my-post-title-here

我很困惑正在查找哪个模型,或者是否有“ Ember 方式”来处理这种常见模式(除了将 posts_id 用于动态部分之外)。

我所有的帖子都在 routes/posts.js 中定义,所以我想我只需要在我的 routes/post.js 路由中查找这条路由中的值,就像这样:

export default Ember.Route.extend({
model: function(params) {
var posts = this.modelFor('posts')
return posts.findBy('title', params.title);
}
});

我在我的 Ember 检查器中看到/posts/:title 路由,但在浏览器中,链接都是未定义的 (/posts/undefined )。

{{#each model as |post|}}
{{#link-to "posts.post" model }}
<li>{{post.title}}</li>
{{/link-to}}
{{/each}}

我希望得到有关处理这种情况的正确方法的任何建议,或有关 Ember 如何查找嵌套路由值的解释。

最佳答案

你需要在你的 routes/post.js 上设置一个序列化器,像这样:

// routes/post.js

export default Ember.Route.extend({
model: function(params) {
var posts = this.modelFor('posts')
return posts.findBy('title', params.title);
},
serialize: function(model) {
return { post_slug: model.get('title') };
}
});

参见 Dynamic Segments

关于javascript - 动态段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30315322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com