2013-07-11 196 views
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()); 
         }; 

Full js fiddle here

我的問題是,我不能刪除新行(由加功能newCreditRows)。我試圖用幾種不同的方式做到這一點,如: this.creditRows.remove(CA); 但沒有運氣。我需要刪除它,因爲null值被插入到我的observable數組中,當我循環記錄時,它會產生很大的問題。我確信我錯過了一些非常小的東西,但作爲一名初級開發者,我無法修復它。

回答

1

看看this fiddle

var vm = { 
    newCreditRows : function() { 

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

我希望它能幫助。

1

如果你只想刪除最後插入的代碼,那麼這個工作就完成了。我將新創建的行存儲在名爲nova的臨時變量中。當您單擊按鈕remove我刪除新星排形成陣列:

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

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/