首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未能替换JSONStore集合中的文档

未能替换JSONStore集合中的文档
EN

Stack Overflow用户
提问于 2016-11-24 16:30:35
回答 1查看 140关注 0票数 0

我正在开发一个使用MobileFirst Foundation8.0的Cordova应用程序,它使用JSONStore以及AngularJS。

以下功能更新已存储在本地集合“日程”中的文档。

代码语言:javascript
复制
update : function(element){

var defer = $.Deferred();

// set query for get document stored in local collection
var query = {id: element.id};

// search for exact value
var options = {
    exact: true,
    limit: 1
};

var collection = WL.JSONStore.get('agenda');

// invoke search function
collection.find(query, options)//WL.JSONStore.get('agenda').find(query, options)
.then(function (results) {
    // handle success - results (array of documents found)

    var rowstatus = results[0].json.rowstatus || '';

    // substitute current saved document with the update document
    results[0].json = element;

    // set value of rowstatus flag
    results[0].json.rowstatus = rowstatus===''?'UPD':rowstatus;

    var arrayMod = [];
    arrayMod.push(results[0]);

    //invoke replace procedure for update document in local collection
    collection.replace(arrayMod, {markDirty: false })//WL.JSONStore.get('agenda').replace(item, {markDirty: false})
        .then(function(docsRefreshed){

            console.log("docsRefreshed", docsRefreshed);

            defer.resolve();
        })
        .fail(function(refreshErr){

            defer.reject(refreshErr);
        });

})
.fail(function (findError) {

    defer.reject(findError);
});

return defer.promise();

}

这些步骤是:

  1. 通过元素的id - IT工作找到本地集合中的文档
  2. 通过将包含在“json”属性中的对象替换为“json”属性来更新文档的内容: id没有更改,我验证了它- it工作
  3. 替换集合中的文档- IT失败

返回的错误不是失败处理程序截获的标准错误,它如下所示:

VM404 worklight.js:5139非公开异常: Uncaught :最大调用堆栈大小超过at (compiled_code):57__log @ VM404 worklight.js:5139PUBLIC_API。(匿名函数)@ VM404 worklight.js:5539WL.Logger.window.onerror @ VM404 worklight.js:5497 VM404 worklight.js:57 Uncaught RangeError:超过最大调用堆栈大小(…)VM404 worklight.js:57__handleJsonObj VM416 jsonstore.js:1951__handleJsonObj VM416 jsonstore.js:1947__handleJsonObj VM416 jsonstore.js:1942__handleJsonObj VM416 jsonstore.js:1947__handleJsonObj VM416 jsonstore.js:1942__handleJsonObjhandleJsonObj @ VM416 jsonstore.js:1942__handleJsonObj VM416 jsonstore.js:1947__handleJsonObj VM416 jsonstore.js:1942__handleJsonObj VM416 jsonstore.js:1947__handleJsonObj jsonstore.js:1947__handleJsonObj VM416 jsonstore.js:1942__handleJsonObj VM416 jsonstore.js:1947__handleJsonObj VM416 jsonstore.js:1942__handleJsonObj VM416 jsonstore.js:1947__handleJsonObj@ VM416 jsonstore.js:1947__handleJsonObj.

EN

回答 1

Stack Overflow用户

发布于 2016-12-05 11:44:26

来自@encrico.visentini的评论:

我解决了这个问题。该错误是由从插件中自动添加的属性引起的,该插件会导致json对象的循环引用。删除这个属性,我可以替换所有的'json‘对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40791166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档