如何保存JSONStore的多个值

时间:2014-09-02 07:51:33

标签: save ibm-mobilefirst savechanges jsonstore multivalue

我需要在IBM Worklight的JSONStore中替换多个值。 这样只保存第一个值。为什么?

 .then(function() {                             
   for (var index = 0; index < elencoSpese.length; index++) {                                          
       var spesa = elencoSpese[index];                              
       var spesaReplace = {_id: spesa.id, json: spesa};                                 
       spesa.id_nota_spesa = idNotaSpesa;                               
       spesa.checked = true;                            
       WL.JSONStore.get(COLLECTION_NAME_SPESE).replace(spesaReplace);
    }
  })

1 个答案:

答案 0 :(得分:1)

您希望构建一个JSONStore文档数组并将其传递给replace API。例如:

.then(function() {

    var replacementsArray = [];

    for (var index = 0; index < elencoSpese.length; index++) {
        var spesa = elencoSpese[index];
        var spesaReplace = {_id: spesa.id, json: spesa};
        spesa.id_nota_spesa = idNotaSpesa;
        spesa.checked = true;
        replacementsArray.push(spesaReplace);
    }

    return WL.JSONStore.get(COLLECTION_NAME_SPESE).replace(replacementsArray);

})
.then(function (numOfDocsReplaced) {
    // numOfDocsReplaced should equal elencoSpese.length
})

我认为这发生在JSONStore API的JavaScript实现中,如果是这样的话,答案就在文档here中。 JSONStore的JavaScript实现需要串行调用代码。等待操作完成后再拨打下一个操作。当您多次调用replace而无需等待时,您将并行而不是串行调用API。这不应该是生产环境中的问题(即Android,iOS,WP8和W8)。