使用Ember RESTadapter时,JSON调用何时执行?
示例1:
示例2:
我的路线:
App.ArticlesRoute = Ember.Route.extend({
model: function () {
return App.Article.find();
}
});
App.ArticlesShowRoute = Ember.Route.extend({
model: function (params) {
return App.Article.find(params.article_id);
}
});
希望有人可以给我基本的解释或链接到其他帮助。
非常感谢 马克
答案 0 :(得分:2)
如果我转到/index.html#/articles/,则会执行对资源文章的JSON调用。
这是正确的,因为适配器将获取所有文章。
当我浏览到/index.html#/articles/2时,不会执行其他调用。
这也是正确的,因为文章已经在商店中,并将从那里提供。
您的相应路由器地图应如下所示:
App.Router.map(function() {
this.resource('articles', function() {
this.route('show', {path: '/show/:article_id'});
})
});
这将使您的ArticlesShowRoute
过时,因为它是默认行为。如果您想要与默认行为不同的东西,则只需要明确定义ArticlesShowRoute
。
在应用程序加载后,我立即进入/index.html#/articles/1,执行2个JSON调用:一个到文章,一个到文章/ 1。
这可能是多余的......
然而,当循环遍历文章集合时(使用#each),只有第1条完成了数据。
此时,您应该能够遍历文章集并链接到要显示的相应文章:
{{#each article in model}}
{{#linkTo 'articles.show' article}}Show article{{/linkTo}}
{{/each}}
希望它有所帮助。