保存更改后Breezejs id fix-up

时间:2013-09-01 20:56:34

标签: 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只是方法,那么这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

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。