如何在Ember.js中渲染模板中加载指示器?

时间:2014-06-29 20:15:28

标签: ember.js handlebars.js

我的ember.js应用程序的某些部分必须刷新,它需要几个secends(例如循环中的排序元素)。我希望在通过把手循环#each运行时显示加载图像。怎么做?

{{#each}}
    {{! display some big data}}
{{/each}}

我不想做任何ajax请求指示器,只在循环期间,我必须一次显示所有数据。

1 个答案:

答案 0 :(得分:0)

奇怪的要求,但是你去......

如果您想显示通过服务器获取的结果。

{{#if bigData.isFulFilled}}
  {{#each object in bigData}}
    <! display some big data>
  {{/each}}
{{else}}
  <! display some loading helper here>
{{/if}}

在其他情况下,你的瓶颈是处理速度,可能会通过你想在控制器中显示in a Ember.run block的数组,确保你的数组只在循环结束时被刷新。

App.BigDataController = Ember.Controller.extend({
  bigData: (function() {
    Ember.run(function() {
     <do your stuff here>
    });


  }).property()

});

之后做上述事情:

{{#if bigData}}
  {{#each object in bigData}}
    <! display some big data>
  {{/each}}
{{else}}
  <! display some loading helper here>
{{/if}}

cool example here显示Ember.run和explained at this post.