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;
}
我正在为我们的服务器端表使用 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;
}