function createTextFields(obj) {
for (var i = 0; i < obj.length; i++) {
var dataDump = {};
for (var key in obj[i]) {
var textField = Ti.UI.createTextField(pm.combine($$.labelBrown, {
left: 200,
height:35,
value:obj[i][key],
width:550,
keyboardType:Ti.UI.KEYBOARD_NUMBER_PAD,
layout:'horizontal',
backgroundColor:'transparent',
id:i
}));
dataDump[key] = textField.value;
var callback = function (vbKey) {
return function (e) {
dataDump[vbKey] = e.source.value;
};
}(key);
}
globalData.push(dataDump);
}
}
我正在使用类似的代码添加数据,它工作正常。我昨天发布了这个问题并解决了...
Last Object is always getting updated?
现在,当我进入编辑页面时,它会向我显示四个文本字段或添加的文本字段数量...现在,当我编辑某些内容并单击保存时...值将在第四个或最后一个 TextFields 对象上更新...
最佳答案
不要在循环内定义函数。计算成本很高并且会导致问题,就像这样。这是一个应该可以解决这个问题的修复:
function createTextFields(obj) {
var callback = function (vbKey, localDump) {
return function (e) {
localDump[vbKey] = e.source.value;
};
}
var i;
var max = obj.length;
for (i = 0; i < max; i++) {
var dataDump = {};
for (var key in obj[i]) {
dataDump[key] = textField.value;
var callBackInstance = function(keyn, dataDump);
}
globalData.push(dataDump);
}
}
关于javascript - 更新仅发生在最后一行,而不是第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7105237/