什么是正确的Angular方式,通过鼠标单击触发handsontable loadData

时间:2013-11-21 09:58:00

标签: jquery angularjs angularjs-directive handsontable

我创建了一个以真正的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')的正确角度方法是什么?

1 个答案:

答案 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]);
        };
    }