我创建了一个以真正的Angular方式加载jquery handsontable的指令。但这是真正的方式,只适用于第一次装载指法。如果我需要在单击鼠标后更改表数据怎么办?
var gmApp = angular.module('gmApp', ['gmServices']);
gmApp.directive('myChart', function() {
return {
restrict: 'A',
link: function(scope, element, attrs) {
$(element).handsontable(scope.$eval(attrs.myChart));
}
};
});
我还创建了激活showVariable()函数
的列表 <ul>
<li ng-repeat="variable in list" ng-click="showVariable(variable.id)">{{variable.name}}</li>
</ul>
此函数在我的控制器中触发loadData:
$scope.showVariable = function(id) {
$('#myChart').handsontable('loadData', $scope.data[id]);
};
但似乎这改变了控制器内部的DOM而不是真正的角度方式。做handontable('loadData')的正确角度方法是什么?
答案 0 :(得分:2)
将showVariable
移至指令的link
函数:
link: function(scope, element, attrs) {
$(element).handsontable(scope.$eval(attrs.myChart));
scope.showVariable = function(id) {
$('#myChart').handsontable('loadData', $scope.data[id]);
};
}