私はloopback offline syncの例に従っており、埋め込まれたドキュメントで自分のモデルを作成しています。 ProjectMembersが組み込みモデルであるProjectという名前のモデルを作成しました。ここに私のモデルです:
私は以下のようにデータソースを更新し、サーバー側モデル-config.jsonで 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": []
}
:
"Project": {
"dataSource": "my_db"
},
"ProjectMember": {
"dataSource": "transient"
}
また、lbclient/models /のクライアント側では、local-todo.jsonとremote-todo.jsonと全く同じ2つのファイルlocal-project.jsonとremote-project.jsonを追加しました。 私は以下のようにクライアント側モデル-config.jsonファイル更新:それはプロジェクトを作成します
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();
});
が、埋め込まれたモデルの作成に失敗しました:私は以下のコードを実行し、クライアントコントローラで
"RemoteProject": {
"dataSource": "remote"
},
"LocalProject": {
"dataSource": "local"
}
を。 「未定義のプロパティを読み取れませんでした」と表示されますか?クライアント側に組み込みモデルを作成する方法はありますか?
更新
埋め込みモデルはサーバー側でのみ機能します。しかし、browserifyがbrowse.bundle.jsを作成すると、埋め込みモデルの追加に失敗します。
「未登録のプロパティを読み取れませんでした」のエラーログを共有できますか? –
ここにエラーログがあります: 未知(約束)TypeError:未定義のプロパティ 'create'を読み取ることができません – nutboltu