【问题标题】:Loopback delete multiple relations环回删除多个关系
【发布时间】:2015-08-17 15:13:29
【问题描述】:

我正在尝试从我的 Angular 应用程序中破坏链接到模型的多个关系。

在我的 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

【问题讨论】:

  • 当你运行你的 remoteMethod 时会发生什么?我想你可以通过运行 $ DEBUG=strong-remoting:remotes node . 获得更多的调试细节,但我不在我家的电脑上检查。
  • 另外我认为你需要像这样引用你的其他模型:app.Models.MessageStudent.destroyByIddocs.strongloop.com/display/public/LB/…
  • 我收到的错误是“无法调用未定义的方法'destroyById'”。
  • 那么blah.destroyById 中的blah 确实是未定义的,请继续在此处粘贴该行,我认为@conradj 建议可以编辑该行

标签: angularjs loopbackjs strongloop loopback


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2014-06-17
    • 1970-01-01
    • 1970-01-01
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多