2015-02-04 273 views
5

我正在使用ngHandsontable Angular指令爲Handsontable。我設法成功顯示數據,但是我正在努力獲得修改的行,以便我可以將數據發送到數據庫。
我試着綁定afterChange回調,但索引似乎在列排序後關閉。 (展示,而不是在數據源上表中顯示的行的索引)使用nghandsontable訪問handsontable方法/屬性

我不知道什麼是保存ngHandsontable數據或我應該做的訪問像GetData方法或columnSorting財產API什麼是最好的做法

非常感謝你的幫助! - 馬科

+0

我研究過這個問題,並試圖找到一個解決方案。不幸的是,這已經變得非常困難,因爲ngHandsontable的文檔至少可以說是可怕的。我建議你發佈一些示例代碼來顯示你的問題或創建一個顯示你迄今爲止進展情況的plnkr。所有我能現在發現的是,只是模糊地描述了一個可能的解決方案[這](https://github.com/handsontable/ngHandsontable/issues/34)git的問題。 – Bricktop

回答

4

我結束了使用afterInit事件獲得實例,然後調用進一步的活動,如改動後的方法。

這是我的代碼看起來像:

afterInit: function() { 
     $scope.hot.instance = this; 
    } 

然後:

afterChange: function (changes, source) { 
     if (source != 'loadData') {   
      var hot = $scope.hot.instance; 
      var dataRow = hot.getSourceDataAtRow(index) 
      // .... saveChanges... 
     }; 
    } 

由於很多Bricktop給我的提示。

post: function postLink(scope, iElement, iAttrs, controller) { 
    var hotDiv = iElement.find("div[hot-table]") 

    var hotInstance = hotDiv.isolateScope().hotInstance; 
    hotInstance.addHook('afterLoadData', function(){ 
     console.log("loaded data"); 
    }); 
} 
0

我只是用這種邏輯來解決它像

this.getCell() 

this.getSourceDataAtRow() 
0

只需使用視圖模型在控制器

var vm = this; 

,然後你可以調用任何該視圖模型的核心handsontable方法: