Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 手动保存Breeze实体并更新keyMappings_Javascript_Angularjs_Breeze - Fatal编程技术网

Javascript 手动保存Breeze实体并更新keyMappings

Javascript 手动保存Breeze实体并更新keyMappings,javascript,angularjs,breeze,Javascript,Angularjs,Breeze,我想在Breeze中手动保存实体。我们只是没有选择,因为我试图争取我的意见,使用SaveChangesJObject saveBundle,并且需要直接使用第三方Web API,为POST/PUT请求提供特定的URL 所以我基本上是在EntityManager.getChanges中循环,然后处理修改、添加和删除的实体 我可以处理修改后的文件,没有任何问题。但是,在添加之后,我知道在成功保存后添加新实体时需要更新keyMappings,但在JavaScript中找不到任何关于如何手动执行此操作的

我想在Breeze中手动保存实体。我们只是没有选择,因为我试图争取我的意见,使用SaveChangesJObject saveBundle,并且需要直接使用第三方Web API,为POST/PUT请求提供特定的URL

所以我基本上是在EntityManager.getChanges中循环,然后处理修改、添加和删除的实体

我可以处理修改后的文件,没有任何问题。但是,在添加之后,我知道在成功保存后添加新实体时需要更新keyMappings,但在JavaScript中找不到任何关于如何手动执行此操作的文档

我还想看看是否有任何返回错误的例子。基本上我想挂接这个电话:

 $http(params).then(
                        function (response) { // success 
                            console.log(response);
                          // update key mappings if its an "Added" somehow
                          //  entityAspect.acceptChanges();
                            dfd.resolve("something eventually");
                        },
                        function () { // error 
                            // added error object here and reject changes on this entity? or just show error message?
                            dfd.reject("error");
                        });
                return dfd.promise;

如果有人想知道,我只检查entityAspect.entityState.isAdded方法。获取从我的第三方返回的新身份,并相应地更新id。我们的系统稍微好一点,因为我们对所有实体都有一个设置键

从代码角度看,dfd是一个$q延迟:

 $http(params).then(function (response) { // success 

                        // on add update the instance id with the new instance id
                        if (entityState.isAdded()) {
                            var newId = response.data.changedInstance.newId; 
                            entity.Id = newId ;
                        }

                        entityAspect.acceptChanges();  
                        dfd.resolve(response.data); 
                    },
                    function (response) { // error  
                        dfd.reject(response.data);
                    });