【发布时间】:2013-05-29 21:30:29
【问题描述】:
我正试图围绕 Ember 资源展开思考,但我碰壁了。查看Rails + Ember.js 之类的指南,我看到声明资源路线的首选方式是:
EmberTester.Router.map(function() {
this.resource('posts', function() {
this.resource('post', { path: ':post_id' });
});
});
这看起来很复杂,必须创建一个嵌套资源来访问各个项目。但除了样式元素之外,真正的问题是行为:从我在服务器端日志和客户端浏览器流量监控中可以看到的这种路由评估“posts”路由和“post”路由的模型挂钩' 路线。也就是说,给定模型钩子:
EmberTester.PostsRoute = Ember.Route.extend({
model: function() {
return EmberTester.Post.find();
}
});
EmberTester.PostRoute = Ember.Route.extend({
model: function(params) {
return EmberTester.Post.find(params.post_id);
}
});
当访问 url /posts/1 both 模型钩子被执行,所以首先向服务器询问所有帖子,然后询问 post_id:1。我一定错过了明显的东西,但我无法确定它是什么。
有没有更简单的方法在 Ember 中声明资源?我应该不声明资源而是使用普通路由吗?
【问题讨论】:
标签: javascript ruby-on-rails ember.js ember-data