2013-03-30 70 views
1

我想通過ember-rails gem在rails和ember.js中創建一個項目。 我做了一個rails generate ember:bootstrap,我正在觀察它在assets/javascripts下創建的樹。ember.js差異路由文件夾和router.js文件

我不明白我必須放在頂層的routes.js文件和/routes文件夾內的文件之間的區別是什麼。

回答

1

在routes.js文件的頂部,你會定義路徑及資源如:

您可以使用此rails app爲指導。我在回答中使用的代碼來自回購。

EmBlog.Router.map(function() { 
    this.resource("posts", {path: '/posts'}, function(){ 
    this.route('new'); 
    this.route('show', {path: '/:post_id'}) ; 
    this.route('edit', {path: '/:post_id/edit'}); 

}); 
}); 

如果你想自定義任何這些路線或資源,那麼你創建一個新的文件/文件夾航線。例如,如果我們想通過定製秀路線定義事件刪除帖子在路由器和也自定義哪些數據是使用模型鉤返回,那麼我們就需要創建一個文件在/ routes/posts/show_route.js有添加我們的代碼:

EmBlog.PostsShowRoute = Ember.Route.extend({ 

model: function(params) { 
    return EmBlog.Post.find(params.post_id); 
}, 

setupController: function(controller, model){ 
    controller.set('content', model); 
}, 

events: { 
    destroyPost: function(post) { 
    post.deleteRecord(); 
    post.get('store').commit(); 
    this.transitionTo('posts'); 
    } 
} 

}); 

分裂路線的想法是,以確保它不會受到太大或充滿的代碼行100的。如果您更喜歡在同一文件中定義頂級路線及其定製。您可以。這就是another rails app就是這麼做的。

+0

太棒了!謝謝 –

+0

不客氣。乾杯 – brg