angularjs - 如何在具有环回和 Angular 的两个对象之间创建正确的 hasOne 关系

标签 angularjs mongodb loopbackjs

我最近开始使用 angular 编写前端代码,并计划使用 loopback (www.loopback.io) 作为我的后端(使用 mongodb 进行存储)。
现在,作为一个基本想法,我只是创建一个登录表单和注册表单,然后从那里继续。然而,我似乎无法让我的模型正确,尤其是它们之间的关系。

我想要一个用于基本用户名/密码内容的用户模型,以及一个可以存储更多信息(如名字、姓氏等)的人员模型。
我目前正在使用开箱即用的“默认”用户模型,并创建了具有所需属性的人员模型。
不过,我无法正确理解的是两者之间的联系(一对一关系,因此是 HasOne 关系)。

这些是我的模型:

user.json

{
  "name": "user",
  "base": "User",
  "idInjection": true,
  "properties": {},
  "validations": [],
  "relations": {
    "person": {
      "type": "hasOne",
      "model": "Person",
      "foreignKey": "id"
    }
  },
  "acls": [],
  "methods": []
}

person.json

{
  "name": "Person",
  "plural": "Person",
  "base": "PersistedModel",
  "idInjection": true,
  "properties": {
    "FirstName": {
      "type": "string",
      "required": true
    },
    "LastName": {
      "type": "string",
      "required": true
    }
  },
  "validations": [],
  "relations": {},
  "acls": [],
  "methods": []
}

我的注册函数
(我使用的是自动生成的 lb-services 文件,您可以使用 loopback 提供的 Angular SDK 提取,这就是为什么您只看到“User.create”之类的东西,而不是“真正的”api 调用)

function register(email, password, firstname, lastname) {
      var usr = User.create({
          email: email,
          password: password
        }).$promise;

      var prs = usr.person.create({
        firstname: firstname,
        lastname: lastname
      });
      return usr;
    }

这里肯定有很多错误,我只是不知道是什么。用户在数据库中创建,但我似乎无法立即创建一个“人”对象并将其链接到新创建的用户。

感谢任何帮助,因为我似乎无法在网上找到许多使用生成的 lb-services 文件使用 angular 和 loopback 的资源...

最佳答案

您似乎引用了 usr 实例的未定义​​属性 person

使用User资源创建person,成功回调:

function register(email, password, firstname, lastname) {
      var usr = User.create({
          email: email,
          password: password
        }, function() {
          User.person.create({ userId: usr.id }, {
            firstname: firstname,
            lastname: lastname 
          }, function(person) {
            console.log('Persone created:', persone)
          })         
        });

      return usr;
    }

关于angularjs - 如何在具有环回和 Angular 的两个对象之间创建正确的 hasOne 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29053180/

相关文章:

python - pymongo 中的 collection.getIndexes() shell 命令的等价物是什么?

error-handling - 如何从 Loopback 4 中的 Controller 返回错误?

validation - 在 Loopback 中更改用户默认验证

javascript - 我的未保存更改指令需要适用于所有具有不同名称的表单

javascript - 对于此映射对象和数组,哪种数组函数是更有效的选择?

javascript - $filter ('date' ) 返回 "invalid date"

javascript - ng-bind-html 不适用于脚本

javascript - 将 req res 对象传递到 socket.io?

javascript - 如何从光标(集合)中检索n个文档组

node.js - 需要环回用户角色的示例代码