0
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();
失敗,因爲Ember.isEqual(q.get('tags'), tags)
在OrderedSets是false
即使兩個模型具有相同的標籤,他們都有自己的加載標籤。相反,我不得不作出一個計算的屬性,給我的東西,與Ember.isEqual
工作:
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')
});
這是繞了一個相當令人費解的方式。