我正在为ngHandsontable使用Handsontable Angular指令。我成功地显示了数据,但我正在努力获取对已修改行的访问权限,因此我可以将数据发送到数据库。
我尝试绑定afterChange回调,但在列排序后索引似乎已关闭。 (显示表中显示的行的索引,而不是dataSource中的索引)
我想知道保存ngHandsontable数据的最佳做法是什么,或者我应该怎么做来访问API,比如getData方法或columnSorting属性
非常感谢你的帮助! - 马可
答案 0 :(得分:4)
我最终使用afterInit事件获取实例,然后在afterChange之类的其他事件中调用方法。
这就是我的代码的样子:
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给我的提示。
答案 1 :(得分:0)
我刚用这种逻辑解决了这个问题:
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");
});
}
答案 2 :(得分:0)
只需在控制器中使用视图模型
var vm = this;
然后你可以调用这个视图模型的任何核心handontable方法,如
this.getCell()
this.getSourceDataAtRow()