ng-click不适用于动态创建的数据表

时间:2016-01-07 07:25:42

标签: angularjs datatables

我有一个搜索文本框,一个按钮和一个数据表。最初在页面加载时,当创建表时,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>

编辑:点击工作是因为点击它会被重定向到主页,但是点击的方法没有被调用。

0 个答案:

没有答案