在一个AngularJS指令中使用handsontable-渲染一个具有ng-click的锚点
在一个AngularJS指令中使用handsontable-渲染一个具有ng-click的锚点
我正在使用Handsontable来呈现一个表格。(是的,我没有使用ngHandsontable。我一开始使用它,但遇到了问题,所以我只是从angularjs指令中呈现了一个Handsontable。)
我想要一个列来保存一个锚点标签。
我希望锚点标签具有angularjs的ng-click指令。
所有的内容都正确呈现,但是ng-click没有被调用。
这是我的例子。
var APP = angular.module('APP', ['controllers']); angular.module('controllers',[]) .controller('testController', function ($scope) { $scope.doNgClick = function() { alert('ng-click'); // console.log('ng-click'); }; $scope.simple = [ { test: "Test" // test: "Test" } ]; }); APP.directive('htable',function($compile) { var directive = {}; directive.restrict = 'A'; directive.scope = { data : '=' }; directive.link = function(scope,element,attrs) { var container = $(element); // var safeHtmlRenderer = function (instance, td, row, col, prop, value, cellProperties) { // var escaped = Handsontable.helper.stringify(value); // td.innerHTML = escaped; // return td; // }; var settings = { data: scope.data, readOnly: true, colHeaders: ['Link'], columns: [ { data: "test", renderer: "html", // renderer: safeHtmlRenderer, readyOnly: true } ] }; var hot = new Handsontable( container[0], settings ); hot.render(); // console.log(element.html()); // $compile(element.contents())(scope); };//--end of link function return directive; });
在这篇文章中,作者提到自己在使用handsontable和angularjs指令时遇到了一个问题。他想要在handsontable中呈现一个带有ng-click属性的锚点,但是无法成功触发点击事件。作者在提问中提到自己已经尝试了一些方法,比如绑定onmousedown事件并阻止事件传播和默认行为,但都没有成功。
经过作者的研究和探索,最终找到了解决方法。作者在自己的angularjs指令中定义了一个控制器方法dir_ctrl_click,用于处理点击事件。在link函数中,作者使用$compile将value编译成angular元素,并将其添加到td元素中。这样就能够成功触发点击事件了。
还有一些相关的参考资料,包括stackoverflow上的几个问题和一篇博客文章,这些资料都对作者解决问题起到了一定的帮助作用。
最后,作者还提到自己尝试过使用ngHandsontable来解决问题,但是并没有成功。他希望读者能够提供关于在angular中解决这个问题的方法。
作者在使用handsontable和angularjs指令时遇到了一个问题,通过研究和探索,最终找到了解决方法。这篇文章为读者提供了一个在angular中渲染带有ng-click属性的锚点的解决方案。