环回:embedded式模型在脱机同步中不起作用

我已经遵循了loopback离线同步的例子,并创build了我自己的embedded式文档模型。 我创build了一个名为Project的模型,其中ProjectMembers是embedded模型。 这是我的模型:
Project.json

{ "name": "Project", "base": "PersistedModel", "strict": "throw", "persistUndefinedAsNull": true, "trackChanges": true, "properties": { ... }, "relations": { "members": { "type": "embedsMany", "model": "ProjectMember", "property": "members", "options": { "validate": true, "forceId": false } } } } 

ProjectMember.json

 { "name": "ProjectMember", "base": "Model", "idInjection": true, "properties": { ... }, "validations": [], "relations": {}, "acls": [], "methods": [] } 

在服务器端model-config.json我更新了数据源如下:

 "Project": { "dataSource": "my_db" }, "ProjectMember": { "dataSource": "transient" } 

在lbclient / models /客户端,我添加了两个文件local-project.json和remote-project.json,与local-todo.json和remote-todo.json完全一样。 我更新了客户端模型config.json文件如下:

 "RemoteProject": { "dataSource": "remote" }, "LocalProject": { "dataSource": "local" } 

在客户端控制器中,我运行以下代码:

 ProjectModel.create($scope.project) .then(function(project) { var owner = loginDetails.getLoginUser();// the member owner.role = 'owner'; owner.status = 'active'; project.members.create(owner); //shows error: couldn't read property $scope.project = {}; $scope.$apply(); }); 

它创build项目,但未能创buildembedded式模型。 它显示“无法读取属性创build未定义”? 有什么办法在客户端创buildembedded式模型?

UPDATE
embedded式模型只能在服务器端工作。 但是,当browserify创buildbrowse.bundle.js时,它无法添加embedded式模型。

我遵循了反复试验的方法,并提出了关于离线embedded式模型的解决scheme。 如前所述,我只在“common / models /”目录中定义了Project和ProjectMember之间的关系。 我发现的是,我也必须定义客户端模型中的关系。 所以我做了以下步骤,它的工作原理。

  1. 我创build了一个json文件 – “lbclient / models / local-project-member.json”。

     { "name": "LocalProjectMember", "base": "ProjectMember" } 
  2. 在“lbclient / model-config.json”中添加了以下几行。

      "LocalProjectMember":{ "dataSource": "local" } 
  3. 修改“lbclient / models / local-project.json”文件如下。

     { "name": "LocalProject", "base": "Project", "relations":{ "members": { "type": "embedsMany", "model": "LocalProjectMember", "property": "memberList", "options": { "persist": true, "validate": true, "forceId": false } } } } 

所以结论是,如果你想让你的embedded式模型在离线状态下工作,你必须重新定义客户端模型中的关系。