注入了ng-click功能的Javascript没有激活

时间:2018-02-09 06:20:08

标签: javascript angularjs angularjs-scope

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

该库允许您使用“数据格式化程序”来注入/格式化html,我们正在使用该格式化程序来编辑/删除行或其他行动,但我们的函数都在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);
    }   

});

1 个答案:

答案 0 :(得分:0)

您可以使用javascript onClick&amp; amp;来解决小问题。呼叫控制器点击功能(因为在数据格式化器中无法识别ng-click)。

<强>码

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