我正在使用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);
}
});
答案 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;
}