簡體   English   中英

ember.js差異路由文件夾和router.js文件

[英]ember.js difference routes folder and router.js file

我正在嘗試通過ember-rails gem在rails和ember.js中創建一個項目。 我讓rails generate ember:bootstrap並且觀察它在assets/javascripts下創建的樹。

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

在頂部的routes.js文件中,您將定義您的路由和資源,例如:

您可以使用此Rails應用程序作為指南。 我在此答案中使用的代碼來自該回購。

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文件夾中創建一個新文件 例如,如果我們要通過定義一個事件來自定義 顯示路由以刪除該路由器中的帖子 ,並還自定義使用模型鈎子 返回的數據 ,那么我們需要在/ 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行代碼。 如果您希望同時在同一文件中定義頂級路由及其自定義。 您可以。 這是另一個實現此目的的Rails應用程序

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM