作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
刚刚开始使用 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') };
}
});
关于javascript - 动态段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30315322/
我是一名优秀的程序员,十分优秀!