我知道如何撤回一个实体,我是否可以对其进行更改并说它是一个"公司"与" People"在子节点中。我可以编辑这些人并保存它,一切都很好。
但是,我不能100%确定的是如何最好地创造"具有该子集合的新子对象或实体,并将其与父节点一起保存。
根据要求添加一些代码。
Html代码
<div data-ng-controller="updateTerritory as vm">
Company Name: {{vm.company.name}} : Territory: {{vm.company.territory.name || 'New Territory'}}<br />
<input type="text" data-ng-model="vm.company.name"/>
<input type="text" data-ng-model="vm.company.territory.name" />
<button data-ng-click="vm.save()">Save Territory</button>
</div>
路线网址:#/ company / territory / 71 / new
角度控制器
angular.module('app').controller(controllerId,
['$location', '$routeParams', 'common', 'datacontext', 'helper', updateTerritory]);
function updateTerritory($location, $routeParams, common, dc, helper) {
var vm = this;
vm.company = undefined;
activate();
function activate() {
common.activateController([getRequestedCompany()], controllerId);
}
function getRequestedCompany() {
var id = $routeParams.id;
var tId = $routeParams.tId;
//if (tId === 'new') {
//vm.company.territory = dc.company.territory.create();
//return vm.company;
//}
return dc.company.getById(id)
.then(function (data) {
vm.company = data;
}, function (error) {
logError("Unable to get company " + id);
});
}
function save() {
return dc.save()
.then(function (saveResult) {
}, function (error) {
vm.isSaving = false;
});
}
}
DataContext服务(dc)。到目前为止,这对于一切都很好,甚至是儿童收藏品
function save() {
return manager.saveChanges()
.then(saveSucceeded, saveFailed);
function saveSucceeded(result) {
logSuccess("Saved Data", result, true);
}
function saveFailed(error) {
throw error;
}
}
它将它保存到实体但不保存到数据库,但是如果我更新任何保存到数据库的Company.Name等属性。如果我尝试更新说公司.Territory.Name,它不存在并且在数据库中有它的下表,它就不会更新。
回顾一下,我可以编辑和保存根属性和子集合,但我不确定如何在子集合上创建新实体。
答案 0 :(得分:2)
var newCust = manager.createEntity('Customer', {name:'Acme'});
只需执行此操作即可创建“子”对象,然后将新对象添加到父对象的相关集合中。