2015-02-04 218 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方法: