如何过滤所有那些没有特定PROJECT的记录(资源模型)

时间:2016-05-19 08:15:22

标签: ember.js ember-data ember-cli

基本上我有PROJECT模型和RESOURCE模型。 PROJECT有很多资源和资源有很多PROJECTS(多对多关系)。 所以我想窥视所有或过滤不属于我的PROJECT的资源。 类似的东西:

this.store.filter('resource', function(resource){
resource.get('projects') != this.get('project')
}) 

它应该是那样的。我不知道什么是正确的方式。 我只是想获取那些没有this.get(' project')或特定项目的资源。

2 个答案:

答案 0 :(得分:0)

您可以使用组合peekAllrejectBy

var resourcesThatDoNotBelongToMyProject = this.get('store').peekAll('resources').rejectBy('projects', this.get('project'));

请注意rejectBy的反面是findBy

答案 1 :(得分:0)

它将返回所有不属于我的project

的活动资源
 resourcesThatDoNotBelongToMyProject: Ember.computed('resources',function(){
        var _self = this;
        return this.get('resources').filter(function(resource){
           let not_present=true;
           if(resource.get('projects') != undefined) {
               resource.get('projects').forEach(function (project) {
                   if (project.id  == _self.get('model').id) {
                       not_present = false;
                   }
               });
           }
            if(not_present == true) {
                return resource.get("active") == true
            }
       });
    }),