Ember 加载模板仅适用于页面刷新

Ember loading template works only on page refresh

我的 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" 都有一个模型挂钩 return 一个承诺(来自服务器的记录); 我在 /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" 本身)以在输入详细信息时强制重新加载照片(以便同时获得评论)

现在,我添加了 templates/webapp-frame/loading.hbs 并且它起作用了; 问题是加载模板在整个应用程序中始终相同;所以我希望只有一个而不是在每个 /templates 子文件夹中都有它的副本...

Ember 处理每条路线的加载模板,它总是 "routename-loading.hbs",看来你还没有创建匹配的模板,这就是为什么你只看到一个白页(默认)。如果您不确定哪些模板是必需的或它们必须如何命名,请安装 ember 检查器并检查路由选项卡,在那里您可以看到 ember 期望的内容以及应该如何命名。