Ari*_*des 3 javascript templates ember.js ember-cli
我想在下一个模板加载之前在Ember中渲染一个加载模板.现在我有一个应用程序路径的加载模板,如果用户直接导航到URL,它可以正常工作.但是,如果用户link-to从应用程序的另一个页面中单击一个页面,我希望显示相同的模板.如何才能做到这一点?
调度afterRender不起作用,因为页面尚未"加载"(现在它只是在下一页加载时在上一页停留几秒钟;使用afterRender导致相同的事情,但是一旦加载你得到一个加载div在淡出之前的简要概述:显然不是预期的行为).
如何显示加载模板呢?
减少加载时间不是一种选择,我们做了一些非常繁重的计算.
编辑:我确实认为我的问题与建议重复的问题不同,因为我想为所有路由提供相同的加载模板,默认加载模板结构不提供."旧版"LoadingRoute解决方案不再适用,因为最新版本的Ember不推荐使用视图.
根据我的理解,Ember.js加载子状态正是您所需要的,尤其是本指南的这一部分:
应用程序/ router.js
Router.map(function() {
this.route('foo', function() {
this.route('bar', function() {
this.route('slow-model');
});
});
});
Run Code Online (Sandbox Code Playgroud)
Ember会交替尝试在层次结构中找到routeName-loading或加载模板,从第一个模板开始:
foo.bar.slow模型加载
foo.bar.loading或foo.bar-loading
foo.loading或foo-loading
加载或应用程序加载(您已经实现)
我建议您删除afterRender(),因为我不知道它是否会干扰触发加载事件.如果指南不提供解决方案,你可以发布一个jsfiddle吗?根据你如何实施网点,Ember.js会变得挑剔...
您可以将我为另一个问题创建的示例分叉,以快速设置JSFiddle以使用Ember.js