javascript - 更新仅发生在最后一行,而不是第一行

标签 javascript

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/

相关文章:

javascript - Controller 数据中的复选框 ng-Repeat 未渲染 : AngularJs

javascript - D3.js 和 Cytoscape.js 有什么区别?

javascript - 如何在单击按钮时隐藏表单

javascript - 检查卸载前是否保存了更改

javascript - Momentjs 无法区分两个日期

javascript - 将 Highcharts 重置为初始状态

javascript - 未捕获的类型错误 : Cannot read property 'split' of undefined in jQuery

javascript - JQuery 元素显示/隐藏和控制流程

javascript - 如何 (1) 从 Angular/Bootstrap 下拉列表中获取选定值以及 (2) 显示选定的选项?

javascript - 如何在 jsdoc-toolkit 中包含已经记录的方法?