通过鼠标点击触发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方式是啥的主要内容,如果未能解决你的问题,请参考以下文章