通过鼠标点击触发handsontable loadData的正确Angular方式是啥

Posted

技术标签:

【中文标题】通过鼠标点击触发handsontable loadData的正确Angular方式是啥【英文标题】:What is right Angular way for triggering handsontable loadData by mouse click通过鼠标点击触发handsontable loadData的正确Angular方式是什么 【发布时间】:2013-12-05 17:26:53 【问题描述】:

我创建了以真正的 Angular 方式加载 jquery handsontable 的指令。但这只是第一次加载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,而不是真正的角度方式。做handsontable('loadData')的正确角度方式是什么?

【问题讨论】:

【参考方案1】:

showVariable 移动到指令的link 函数中:

    link: function(scope, element, attrs) 
        $(element).handsontable(scope.$eval(attrs.myChart));

        scope.showVariable = function(id) 
           $('#myChart').handsontable('loadData', $scope.data[id]);
        ;
    

【讨论】:

以上是关于通过鼠标点击触发handsontable loadData的正确Angular方式是啥的主要内容,如果未能解决你的问题,请参考以下文章

java中如何获取网页中鼠标点击过的事件

unity中鼠标点击触发物体运动

html中的点击事件

jquery模拟鼠标点击动作

vue加载中loading提示信息(iView Spin)

自定义单元格渲染器操作未在 handsontable 中触发