Breezejs id在保存更改后进行修复

Breezejs id fix-up after save changes

本文关键字:id 保存更改 Breezejs      更新时间:2023-09-26

我正在以这种方式使用微风创建新实体:

var item = manager.createEntity("ExercisesAndMuscles", initialValues);
 saveChanges().fail(addFailed);
 logger.log("id is", item.Id);
function saveChanges() {
        return manager.saveChanges();
    }

控制台中的id是-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。