在一个AngularJS指令中使用handsontable-渲染一个具有ng-click的锚点

16 浏览
0 Comments

在一个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;
});



  
    
  
  
        

0
0 Comments

在这篇文章中,作者提到自己在使用handsontable和angularjs指令时遇到了一个问题。他想要在handsontable中呈现一个带有ng-click属性的锚点,但是无法成功触发点击事件。作者在提问中提到自己已经尝试了一些方法,比如绑定onmousedown事件并阻止事件传播和默认行为,但都没有成功。

经过作者的研究和探索,最终找到了解决方法。作者在自己的angularjs指令中定义了一个控制器方法dir_ctrl_click,用于处理点击事件。在link函数中,作者使用$compile将value编译成angular元素,并将其添加到td元素中。这样就能够成功触发点击事件了。

还有一些相关的参考资料,包括stackoverflow上的几个问题和一篇博客文章,这些资料都对作者解决问题起到了一定的帮助作用。

最后,作者还提到自己尝试过使用ngHandsontable来解决问题,但是并没有成功。他希望读者能够提供关于在angular中解决这个问题的方法。

作者在使用handsontable和angularjs指令时遇到了一个问题,通过研究和探索,最终找到了解决方法。这篇文章为读者提供了一个在angular中渲染带有ng-click属性的锚点的解决方案。

0