2015-05-19 29 views
2

剛開始使用Ember並對於處理常見模式的餘燼方式有疑問。動態細分值

我有一個有以下router.js:

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

我不知道如何使用的文章標題的值作爲動態段,使發佈網址顯示爲/posts/my-post-title-here

我很困惑這個模型正在被查看,或者是否有一種「餘燼路徑」來處理這個常見的模式(除了使用動態段的posts_id)。

我所有的帖子都在路由/ posts.js定義的,所以我想我只是需要查找我的路線/ 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}} 

我很想對處理這種情況或關於灰燼如何查找值嵌套的路線說明的正確方法的任何建議。

回答

2

你需要設置你的路由/ 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