使用nghandsontable访问handsontable方法/属性

时间:2015-02-04 20:00:09

标签: angularjs handsontable

我正在为ngHandsontable使用Handsontable Angular指令。我成功地显示了数据,但我正在努力获取对已修改行的访问权限,因此我可以将数据发送到数据库。
我尝试绑定afterChange回调,但在列排序后索引似乎已关闭。 (显示表中显示的行的索引,而不是dataSource中的索引)

我想知道保存ngHandsontable数据的最佳做法是什么,或者我应该怎么做来访问API,比如getData方法或columnSorting属性

非常感谢你的帮助! - 马可

3 个答案:

答案 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()