我正试图围绕 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
两个模型钩子都会被执行,所以服务器首先被要求提供所有帖子,然后是 post_id:1。我一定错过了明显的东西,但我无法确定它是什么。
有没有更简单的方法在 Ember 中声明资源?我不应该声明资源而是使用普通路由吗?