我的Ember应用程序中有这条路线:
Router.map(function() {
// landing page (login/register)
this.route('home', {path: '/'});
// authenticated pages
this.route('webappFrame', {path: '/app'}, function() {
this.route('feed', {path: 'feed'});
this.route('photoDetail', {path: 'photo/detail/:id'});
});
});
其中“feed”和“photoDetail”都有一个返回promise的模型钩子(来自服务器的记录); 我在/ template文件夹中有一个loading.hbs模板;
在“feed”和“photoDetail”路径上刷新页面后,正确显示加载模板; 但是当在路线之间导航时,它不再显示(出口仍然是白色的,承诺得到解决);
我使用ember-cli 2.3.0-beta.1(但也尝试使用1.13.14稳定版)和ember 2.3.0; 在官方的ember文档中写道,它应该始终遍历模板树,直到找到加载模板; 有人能告诉我这里有什么问题吗?
更新------------------------------------------- ---------
// feed model hook
model: function(params, transition) {
return this.store.query('photo', {type: 'feed'});
}
// photoDetail model hook
model: function(params, transition) {
var self = this;
return Ember.RSVP.hash({
photo: self.store.find('photo', params.id),
comments: self.store.query('comment', {id: params.id})
});
},
并在Feed模板中:
{{#each photo as |item|}}
{{photo-item item=item}}
{{/each}}
然后是照片项目组件:
{{#link-to "webappFrame.photoDetail" item.id}}
<img class="photoImage" src="{{imageurl item.hash type='photo'}}">
{{/link-to}}
其中{{imageurl}}只是一个帮助创建图像的路径; 在这里我将“item.id”传递给link-to(传递“item”本身的instad)以在输入细节时强制重新加载照片(为了得到评论)
现在,我已经添加了templates / webapp-frame / loading.hbs并且它可以工作; 问题是加载模板在整个应用程序中总是相同的;所以我希望在每个/ templates子文件夹中只有一个而不是副本...