![](/img/trans.png)
[英]Error with Ember.js + Rails - undefined 'Ember.Router.extend'
[英]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.