Javascript 注入的 ng-click 函数没有触发

Javascript injected ng-click function didn't fire

我正在为我们的服务器端表使用 this bootstrap libary,但在触发注入的 JS 函数时遇到了一些问题。

该库允许您使用 "data-formatter" 到 inject/format 和 html,我们正在使用该格式化程序来 edit/delete 或行的其他操作,但我们的功能是全部在 AngularJS 中,似乎注入的 HTML 未编译,范围内的 ng-click 函数未触发。

这是下面的代码,我 created a JSFiddle 也是为了更好地演示这个问题。我更喜欢 app.directive 解决方案,以便在我们的应用程序中更好地重用(如果存在)或其他解决方法?谢谢。

HTML

<div ng-app="myApp" ng-controller="myCtrl">

<button class="btn btn-default" ng-click="test(0)">
This works
</button>

<table data-toggle="table"
       data-show-print="true"
       data-url="/gh/get/response.json/wenzhixin/bootstrap-table/tree/master/docs/data/data1/">
    <thead>
    <tr>
        <th data-field="name">Name</th>
        <th data-field="stargazers_count">Stars</th>
        <th data-field="forks_count">Forks</th>
        <th data-formatter="Action">Action</th> 
    </tr>
    </thead>
</table>
</div>

JavaScript/AngularJS

function Action(value, row){
    var html = '<a ng-click="click(1)" href="#">Click me</a>';
  return html;
}

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {

    $scope.click = function(args){
        alert(args);
    }   

    $scope.test = function(args){
        alert(args);
    }   

});

您可以通过使用 javascript onClick 和调用控制器点击功能(因为 ng-click 在数据格式化程序中无法识别)来解决这个问题。

代码:

function Action(value, row){
    var html = '<a onClick="angular.element(this).scope().click(row)" href="#">Click me</a>';
  return html;
}