2014-05-19 3 views
0

을 감안할 때 두 모델은 같은 태그가 그들은 모두 자신의 태그가로드 경우에도 OrderedSets에 Ember.isEqual(q.get('tags'), tags)false 때문에같은 관계의 모델을 어떻게 확인할 수 있습니까?

App.Chart = DS.Model.extend({ 
    tags: DS.hasMany('tag'), 

    sameTag: function() { 
    var id = this.get('id'); 
    var tags = this.get('tags'); 
    return this.store.filter('chart', function(q) { 
     return Ember.isEqual(q.get('tags'), tags); 
    }); 
    }.property('tags') 
}); 


App.Tag = DS.Model.extend(); 

실패.

App.Chart = DS.Model.extend({ 
    tags: DS.hasMany('tag'), 

    sameTag: function() { 
    var id = this.get('id'); 
    var tags = this.get('_tagsKey'); 
    return this.store.filter('chart', function(q) { 
     return Ember.isEqual(q.get('_tagsKey'), tags); 
    }); 
    }.property(), 

    _tagsKey: function(){ 
    var tags = []; 
    this.get('tags').forEach(function(tag){ 
     tags.push(tag.id); 
    }); 
    return tags.join(","); 
    }.property('tags') 
}); 

그것에 대해가는 아주 복잡한 방법 대신 나는 나에게 Ember.isEqual와 함께 작동 뭔가를 제공하는 계산 된 속성을했습니다했습니다.

답변

0

나는 당신의 아이디어 권리를 가지고있는 경우 :

이 여전히 조금 비싸지 만 작업을해야
sameTag: function() { 
    var tags = this.get('tags') 
    , ids = tags.mapBy('id').join(''); 

    return this.store.filter('chart', function(q) { 
    return q.get('tags').mapBy('id').join('') === ids; 
    }); 
}.property('tags') 

.

관련 문제