0

我正在使用此代码在我的表中添加一个新行:

 var CA = function() {
                            this.CAName = null;
                            this.CAAdress = null;
                            this.CAIdNum = null;
                            this.CAContact = null;
                            this.CAName = null;
                            this.CANote = null;
                            this.CAType = null;
                        };

                        newCreditRows = function () {
                            this.creditRows.push(new CA());
                        };

完整的js小提琴在这里

我遇到的问题是我无法删除新行(由newCreditRows函数添加)。我试图以几种不同的方式做到这一点: this.creditRows.remove(CA); 但没有运气。我需要删除它,因为 null 值被插入到我的 observable 数组中,并且当我循环遍历记录时它会产生巨大的问题。我确信我错过了一些非常小的东西,但作为一名初级开发人员,我无法修复它。

4

3 回答 3

1

看看这个小提琴

var vm = {
    newCreditRows : function () {

        this.creditRows.push(new CA());
    },
    remove :  function(ca){
        vm.creditRows.remove(ca);
   },
    creditRows : ko.observableArray()
};

我希望它有所帮助。

于 2013-07-11T11:54:45.430 回答
1

如果您只想删除最后插入的代码,则此代码可以完成这项工作。我将新创建的行存储在一个名为nova. 当您单击按钮时,remove我会从数组中删除新星行:

演示:http: //jsfiddle.net/9cAMz/1/

于 2013-07-11T11:51:26.470 回答
1

您可以将删除功能添加到您的对象:

removeCreditRow : function (parent){
    parent.creditRows.remove(this);
}

并按如下方式使用它:

    <td><a href="#" data-bind="click: $parent.removeCreditRow.bind($data, $parent)">Remove</a> </td>

这是工作小提琴:http: //jsfiddle.net/9cAMz/2/

于 2013-07-11T11:53:50.723 回答