我想动态生成列表条目,并同时将它们作为jsonstore文档添加到我的本地商店。
当我这样做的时候:
var j=0;
while(j<7) {
/* populating our jsonstore */
accessor.add({stuff_to_add})
.then(function(){})
/* showing it to the user */
$('<li>').attr({attributes}).html('html').appendTo('element');
j++;
}
只添加了一个文档,因为我认为worklight不会自动将添加请求放入队列中,如果前一个没有解析,则取消最后一个,或者沿着这些行取消。
所以当我这样做的时候:
var j=0;
while(j<7) {
/* populating our jsonstore */
accessor.add({stuff_to_add})
.then(function(){
/* showing it to the user */
$('<li>').attr({attributes}).html('html').appendTo('element');
j++; })
}
Mozilla完全崩溃,甚至没有成功停止脚本我不明白为什么因为它应该只调用add函数多次=(调用时间(accessor.add)/循环时间)应该是有限。
编辑:实际上,如果我们假设worklight没有将文档放入添加队列中,则每次循环循环时都会替换初始添加请求,并且它永远不会完成,从而解释崩溃。
编辑2:尝试使用递归函数调用自身,直到j达到7而不是循环
答案 0 :(得分:2)
编辑2胜:
var j=0;
while(j<7) {
/* creating the ui*/
$('<li>').attr({attributes}).html('html').appendTo('element');
j++;
}
/* populating jsonstore */
add_documents(0,stuff_to_add);
其中add_documents(0,stuff_to_add)定义如下:
add_documents = function(n,stuff_to_add){
if(n<7){
accessor.add({stuff_to_add})
.then(function(){alert(n);add_documents(n+1,stuff_to_add);});
}
else
{return true;}
};
答案 1 :(得分:1)
add
API可以采用JSON对象数组,例如:
var data = [{name: 'carlos'}, {name: 'mike'}];
WL.JSONStore.get('collection').add(data)
.then(function () {
/*update the UI here*/
var len = data.length;
while (len--) {
console.log(data[len].name);
}
})
.fail(function (err) {
/*handle failure*/
});