在Ember

时间:2016-06-24 17:52:04

标签: javascript templates ember.js

我一直在做很多修修补补,似乎无法让它发挥作用。我希望在等待我的模型承诺返回时显示我的加载模板。

我的理解是,默认情况下,如果我有app/templates/loading.hbs,则此模板将在所有路线上呈现。但是,即使在我在路线之间切换时使用该模板,旧路线仍会显示,直到模型返回,此时我的液体火焰转换发生并且您将被带到下一条路线。

我尝试过为每个路由创建嵌套加载模板的各种版本,尝试为加载模板的每个路由创建子路由,甚至搞乱了可用的beforeModel / afterModel方法,但我没有进展。这是我在发布之前想要跨越的最后一个障碍,并且为什么我无法使其工作感到困惑。以下是我认为相关的一堆代码。

注意:我使用的是Ember CLI和Liquid Fire。我的数据也暂时从Ember Service返回给模型。

路由器

Router.map(function() {
  this.route('reviews', function() {
    this.route('index', {path: '/'});
    this.route('review', {path: '/:review_id'});
  });
  this.route('movies');
  this.route('about');
});

应用/模板/ loading.hbs

<div class="content-container">
    <h1>Ish be loading</h1>
</div>

最慢​​的模型路线

export default Ember.Route.extend({
    activate() {
        this._super();
        $("html,body").animate({scrollTop:0},"fast");
        $("body").addClass('movies');
    },
    deactivate() {
        $("body").removeClass('movies');
    },
    model() {
        const movies = this.get('movies');
        return movies.getMoviesInAlphOrder();
    },
    afterModel: function() {
        $(document).attr('title', 'Slasher Obscura - Movie Database');
    },
    movies: Ember.inject.service()
});

app.js

App = Ember.Application.extend({
    modulePrefix: config.modulePrefix,
    podModulePrefix: config.podModulePrefix,
    Resolver,
    ...
});
loadInitializers(App, config.modulePrefix);

我已经阅读了Ember网站上的文档以及其他各种Google资源,似乎无法弄清楚为什么我的加载模板根本无法渲染。任何帮助都是极好的!谢谢!

0 个答案:

没有答案