我正在使用带有实体框架的breezeJS,使用ui-bootstrap模式对话框为用户输入字段提供输入标签。因为我需要一个初始化的实体,我还需要为实体提供一个实体密钥,我相信在http://breeze.github.io/doc-js/inside-entity.html下的"分离的实体中描述了实体密钥。"如果我不改变模态中的键值,一切都很好。但是,在用户输入适当的密钥之前,这应该是占位符密钥。发生这种情况时,manager.saveChanges()会捕获错误。我已经尝试将实体初始化为分离,完成模态,然后添加到管理器,但也没有成功。有关如何使用默认密钥初始化实体的任何想法将立即被用户替换?谢谢!
//datacontext.js
function saveChanges() {
if (createItem.entityAspect.entityState.isDetached()) {
manager.addEntity(createItem);
}
if (manager.hasChanges()) {
manager.saveChanges()
.then(saveSucceeded)
.catch(saveFailed);
} else {
console.log("Nothing to save");
}
function saveSucceeded() {
console.log("Save succeeded");
return;
}
function saveFailed() {
console.log("Save failed");
return;
}
}
function newItem() {
createItem = manager.createEntity('Some_Entity_Type',
{ aPI: '1000001' }, breeze.EntityState.Detached);
return createItem;
};
答案 0 :(得分:0)
看起来问题是使用实际的主键值进行初始化。用
初始化 function newItem() {
createItem = manager.createEntity('Some_Entity_Type',
{ aPI: 0 }, breeze.EntityState.Detached);
return createItem;
};
在用户输入实际密钥之前,充当临时占位符。我的更大问题是由于在ui-modal中有不同类型的输入框,其中每个都是type =“text”,因此键值作为文本输入并抛出错误。