Angularjs 如何在具有回环和角度的两个对象之间创建正确的hasOne关系

Angularjs 如何在具有回环和角度的两个对象之间创建正确的hasOne关系,angularjs,mongodb,loopbackjs,Angularjs,Mongodb,Loopbackjs,我最近开始使用angular编码作为前端代码,并计划使用loopback(www.loopback.io)作为后端(使用mongodb存储)。 现在,作为一个基本的想法,我只是创建一个登录表单和注册表单,然后继续。然而,我似乎无法正确理解我的模型,尤其是它们之间的关系 我想要一个基本用户名/密码的用户模型,以及一个可以存储更多信息(如名字、姓氏等)的个人模型。 我目前使用的是“默认”用户模型,您可以直接使用该模型创建一个具有所需属性的人员模型。 但我不能得到正确的答案,那就是两者之间的联系(一对

我最近开始使用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": []
}
{
  "name": "Person",
  "plural": "Person",
  "base": "PersistedModel",
  "idInjection": true,
  "properties": {
    "FirstName": {
      "type": "string",
      "required": true
    },
    "LastName": {
      "type": "string",
      "required": true
    }
  },
  "validations": [],
  "relations": {},
  "acls": [],
  "methods": []
}
person.json

{
  "name": "user",
  "base": "User",
  "idInjection": true,
  "properties": {},
  "validations": [],
  "relations": {
    "person": {
      "type": "hasOne",
      "model": "Person",
      "foreignKey": "id"
    }
  },
  "acls": [],
  "methods": []
}
{
  "name": "Person",
  "plural": "Person",
  "base": "PersistedModel",
  "idInjection": true,
  "properties": {
    "FirstName": {
      "type": "string",
      "required": true
    },
    "LastName": {
      "type": "string",
      "required": true
    }
  },
  "validations": [],
  "relations": {},
  "acls": [],
  "methods": []
}
我的注册功能
(我使用的是自动生成的lb服务文件,您可以使用loopback提供的angular SDK提取,这就是为什么您只看到“User.create”之类的东西,而不是“real”api调用)

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


非常感谢您的帮助,因为我似乎找不到许多在线资源使用angular和loopback生成的lb services文件…

似乎您引用了
usr
实例的未定义属性
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;
    }

我昨天在尝试不同的东西时设法找到了这个确切的解决方案,但是,鉴于我昨天没有回答我自己的问题,我接受你的答案为“正确的”。)