如何优化这种昂贵的(0.5秒+)绑定?

时间:2013-11-27 20:39:54

标签: binding properties ember.js

有关如何优化此绑定的任何建议?它永远不会被设置为,但我不确定如何将其转换为oneWay绑定。它的作用是跟踪艺术作品中使用的所有颜色。颜色可以来自文本或图像(图像中的颜色是在服务器端检测到的,但这会同时发生并且不会影响此属性的时间)。

coloursUsed: function() {
  var colours = new Ember.Set();
  var arts = [this.get('frontArt'), this.get('backArt')];
  arts.forEach(function(art) {
    if(Ember.isNone(art)){
      return;
    }
    if(! Ember.isEmpty(art.get('textArts'))) {
      colours.addEach(art.get('textArts').mapBy('colour'));        
      colours.addEach(art.get('textArts').mapBy('strokeColour'));
    }
    if(! Ember.isEmpty(art.get('imageArts'))) {
      var img_colours = art.get('imageArts').mapBy('colours');
      img_colours.forEach(function(img_colour_array){
        colours.addEach(img_colour_array);        
      })
    }
  });
  return colours.toArray();
}.property('frontArt.textArts.@each.colour',   'frontArt.textArts.@each.strokeColour',
           'backArt.textArts.@each.colour',    'backArt.textArts.@each.strokeColour',
           'frontArt.imageArts.@each.colours', 'backArt.imageArts.@each.colours'),

0 个答案:

没有答案