javascript - 保存更改后 Breezejs id 修复

标签 javascript breeze

我正在以这种方式使用 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/

相关文章:

javascript - Javascript 中的 HTML DOM 绘图事务?

javascript - 关于嵌套 setInterval

javascript - 没有 MongoJS 的 Node.js + MongoDB

javascript - 使用 BreezeJS 获取 DateTime 类型的日期

javascript - 使用 foreach 内部的键值对进行 knockout 绑定(bind)

OData Any and All 与 JayData 或 Breeze

Javascript 即使有额外的 ../也能找到外部文件

javascript - 使用 $.ajax post 将数据发送到 node.js 服务器不起作用

json - 如何使用 Breeze FilterQueryOp 忽略大小写

javascript - Breeze js - 如何从 JSON 字符串创建实体并将其导入到 Breeze 缓存中