我想在下一个模板加载之前在Ember中呈现一个加载模板。现在,我有一个用于应用程序路由的加载模板,如果用户直接导航到URL,该模板可以正常工作。但是,如果用户link-to
从应用程序的另一个页面中单击该页面,则希望显示相同的模板。如何才能做到这一点?
进行调度afterRender
尚不成功,因为该页面尚未“加载”(现在,它在下一页加载时仅在前一页停留了几秒钟;使用afterRender会导致同样的事情,但是一旦加载,您就会得到在加载div消失之前简要浏览一下:显然不是预期的行为)。
如何显示加载模板呢?
减少加载时间不是一个选择,我们进行了大量繁重的计算。
编辑:我确实相信我的问题与建议重复的问题有所不同,因为我希望所有路线都具有相同的加载模板,而默认的加载模板结构未提供该模板。“旧版” LoadingRoute解决方案无法正常工作,因为最新版本的Ember已弃用视图。
据我了解,Ember.js加载子状态正是您所需要的,尤其是本指南的这一部分:
app / router.js
Router.map(function() {
this.route('foo', function() {
this.route('bar', function() {
this.route('slow-model');
});
});
});
Ember将交替尝试从第一个模板开始在层次结构中查找routeName-loading或loading模板:
foo.bar.slow-model-loading
foo.bar.loading或foo.bar-loading
foo.loading或foo-loading
加载或应用程序加载(您已经实现)
我建议您删除afterRender(),因为我不知道它是否会干扰触发加载事件。如果指南不提供解决方案,您可以发布jsfiddle吗?Ember.js可能会变得有些挑剔,具体取决于您实施出口的方式。
您可以派生一个我为另一个问题创建的示例,以快速设置您的JSFiddle与Ember.js一起使用
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句