Handsontable Dynamically Set Settings

2019-07-24 02:15发布

问题:

I have a very big handsontable. I have dropdown columns defined, but, the values for the sources are retrieved with AJAX.

How can I set the "source" property of a "column" of type "dropdown" dynamically?

Regards!

回答1:

You can, and should, use:

hotInstance.updateSettings({
  columns: getNewColumns()
})

Where getNewColumns() would return an array of columns with the data and new source (or make the AJAX call from in here). That should do it!



回答2:

Thank you for the answer ZekeDroid.

I was able to solve my issue.

First lets talk about a problem in the angular directive: I am using the handsontable's angular directive. Two things happen: 1. If I associated the datarows attribute to a nested variale in the model, for example $scope.hot.data, then when I change the value of the model ( $scope.hot.data ) the grid ui is not refreshed. I am pretty sure this is an issue with the directive. Now: 2. Assume I use $scope.data and I update its value (this is the model right), then the grid ui is not refreshed either. I have to do something like hotInstance.updateSettings({data: newData}) as well.

I have to do both things; that is, update the model and call the update settings method. This is the only way I could get it work properly.

Note: if I do $scope.$apply() instead the updateSettings, I get an error in the console.