外部视图正在减慢emberjs中的渲染速度

时间:2014-04-21 16:50:37

标签: ember.js

我正在使用couple视图来格式化每个循环中的数据。让我们仔细看看我的代码:

模板:

{{#each controller.positions}}
  <tr>
    <td>{{position}}</td>
    <td class="url">{{url}}</td>
    {{#each days}}
      {{#view App.DaysView changed=data.change}}
      <td {{bind-attr class="view.change"}}>{{data.position}}</td>
      {{/view}}
    {{/each}}
  </tr>
{{/each}}

查看:

App.DaysView = Ember.View.extend({
    changed: 0,
    change: function() {
        if(this.get('changed') > 0)
        {
            return 'down';
        }

        if(this.get('changed') < 0)
        {
            return 'up';
        }
    }.property()
});

当data.position为高零且&#34; .up&#34;我试图添加class .down。 data.position低于零时的类。 工作正常但很慢。放慢速度的原因是使用外部视图。我怎样才能改进我的代码?我应该将逻辑移到控制器并使用条件吗?

1 个答案:

答案 0 :(得分:1)

我没有看到任何可能会降低您的应用速度的内容。如果您显示数千条记录可能是个问题,但我想这不是您的情况。

我认为你可以用这种方式使用一个独特的html元素:

App.DaysView = Ember.View.extend({
  tagName: 'td',
  classNameBindings: ['up', 'down'],
  up: Ember.computed.gt('changed', 0),
  down: Ember.computed.lt('changed', 0),
  changed: 0

});