我有一个搜索文本框,一个按钮和一个数据表。最初在页面加载时,当创建表时,ng-click
工作正常,点击搜索按钮我再次动态创建表并显示搜索记录(这工作正常)。但是在动态创建的表上,ng-click
无效。下面是我最初加载的表的代码。
<div id="tableDiv" class="table-responsive" style="width: 100%;">
<table id="srchTable" class="display" style="font-size: 0.85em;">
<thead>
<tr>
<th>Name</th>
<th>Age</th>
<th>Salary</th>
</tr>
</thead>
<tr ng-repeat="sData in searchData">
<td><a id="A1" href="" ng-click="openDialog(sData.UserID)">{{jsonSearchData.Name}}</a></td>
<td>{{sData.Age}}</td>
<td>{{sData.Salary}}</td>
</tr>
</table>
</div>
ng-click
适用于上述代码。下面是我用来动态创建表格的代码。
$scope.searchData = searchD;//search results(json) are coming in searchD variable
var option="";
$("#srchTable").remove();
$("#dataCountinTable").after('<div id="tableDiv" class="table-responsive" style="width: 100%;">');
option += '<thead><tr><th>Name</th><th>Age</th><th>Salary</th></tr></thead>';
for (var i = 0; i < searchD.length; i++) {
option += '<tr><td><a id="A1" href="" ng-click="openDialog('+searchD[i].UserID+')">'+searchD[i].Name+'</a>'+
'</td><td>'+searchD[i].Age+'</td><td>'+searchD[i].Salary+'</td></tr>';
}
option += '</table>';
//$("#srchTable").append(option);
//$("#srchTable").DataTable();
//var temp = $compile(option)($scope);
//angular.element(document.getElementById('srchTable')).append(temp);
//$("#srchTable").DataTable();
最后5行是我试图让ng-click
正常工作的代码,但都是徒劳的。对于$compile
我收到错误$compile is not defined
。
当初始加载表格时,创建的链接为
<a id="A1" href="" ng-click="openDialog(sData.UserID)" class="ng-binding">Steve</a>
在动态创建的表中,链接将作为
<a id="A1" href="" onclick="openDialog(1)">Steve</a>
编辑:点击工作是因为点击它会被重定向到主页,但是点击的方法没有被调用。