环回删除多个关系

时间:2015-06-03 12:04:25

标签: angularjs loopbackjs strongloop loopback

我试图通过我的角度应用来破坏与模型相关联的多个关系。

in my person.json我有两个关系:

  "messageGroups": {
      "type": "hasMany",
      "model": "messageGroup"
    },
    "messageStudents": {
      "type": "hasMany",
      "model": "messageStudent"
    }

这些工作正常。 但是,我想在一次调用中为一个人删除多个messageGroups和messageStudents。而不是使用多次调用Person.messageGroups.destroyById(...)和Person.messageStudents.destroyById(...)

我最初的想法是在我的person.js文件中创建一个远程方法,该文件接受personId和一个包含messageGroups和messageStudents的id的对象。

但我无法编写工作代码。 我的最后一次尝试看起来像这样:

Person.destroyTargetsFromMessage = function (personId, assignees, callback) {
        for(var i in assignees.studentIds){
            Person.messageStudents.destroyById({'id': personId, 'fk': assignees.studentIds[i]});
        }
        for(var i in assignees.groupIds){
            Person.messageGroups.destroyById({'id': personId, 'fk': assignees.groupIds[i]});
        }
        callback();
    };

或者这样做的正确方法是否会使用多次调用我的API?

更新

我已经编写了这段代码,让我更接近目标:

Person.destroyTargetsFromMessage = function (personId, assignees, callback) {
        Person.findById(teacherId, function(err, targetPerson){
            for(var i in assignees.studentIds){
                targetPerson.messageStudents.findById(assignees.studentIds[i], function(err, student){
                    callback(null, student);
                    console.log(student);
                });
            }
            for(var i in assignees.groupIds){
                targetPerson.messageGroups.findById(assignees.groupIds[i], function(err, group){
                    callback(null, group);
                    console.log(group);
                });
            }
            callback();
        });
};

唯一的问题是我不能在我的targetPerson关系上调用destroyById,但findById似乎工作正常。

解决

删除我的关系的方法是destroy,而不是destroyById

1 个答案:

答案 0 :(得分:0)

删除我的关系的方法是destroy,而不是destroyById