我正在以这种方式使用 Breeze 创建新实体:
var item = manager.createEntity("ExercisesAndMuscles", initialValues);
saveChanges().fail(addFailed);
logger.log("id is", item.Id);
function saveChanges() {
return manager.saveChanges();
}
在控制台中是 -1,根据 Breeze 文档,这是应该的。当我刷新页面时,我看到 id 不再是 -1,即现在 id 是数据库中的永久 id。
所以我的问题是,如何在不刷新页面的情况下自动获取此 ID。 我知道一种可能的解决方案是在客户端生成 ID,但我不想那样做。
还有其他方法吗?如果在客户端生成 id 是唯一的方法,那么正确的方法是什么?
最佳答案
saveChanges 是异步发生的,所以在您记录时,id 确实是 -1 但不久之后它会变成永久的。
var item = manager.createEntity("ExercisesAndMuscles", initialValues);
saveChanges().then(showId).fail(addFailed);
function showId () {
logger.log("id is", item.Id);
}
function saveChanges() {
return manager.saveChanges();
}
在返回的 promise 完成后记录 id,如图所示,它将不再是 -1。
关于javascript - 保存更改后 Breezejs id 修复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18562853/