2017-03-05 48 views
0

角度應用程序已被嵌入到一個jQuery應用程序,它使用數據表插件來顯示錶。 在此表中,按鈕和鏈接的HTML是在加載頁面並完成服務器端AJAX調用後生成的。如何在加載HTML後使用jQuery Datatables處理指令?

我寫了一個屬性級指令my-directive,它應用於那些生成的HTML按鈕。 like <button my-directive>delete</button>

由於在初始化Angular APP之後生成HTML,因此my-directive屬性無效。

如何在AJAX調用完成後處理指令?

(我是從DataTable的drawCallback方法捕捉AJAX調用完成的事件。

+0

而不是讓我們猜測出藍色的,請出示你的代碼 – davidkonrad

+0

@davidkonrad:相關 - http://stackoverflow.com/questions/42648788/datatabes-how-to-get-pagination-working-當表-HTML-被編譯與 - angul –

回答

0

的解決方案是

  1. 重新編譯通過DataTable中採用了棱角分明生成的HTML。
  2. 用編譯版本代替HTML

爲此,我們應該在數據表配置中添加以下代碼 -

var exampleTable = $("#table_id").DataTable({ 
"drawCallback": function(settings) { 

      angular.element(document).injector().invoke(['$compile', function ($compile) { 
        // Create a scope. 
        var $scope = angular.element(document.body).scope(); 
        // Specify what it is we'll be compiling. 
        var to_compile = $("#table_id").html(); 
        // Compile the tag, retrieving the compiled output. 
        var $compiled = $compile(to_compile)($scope); 
        // Ensure the scope and been signalled to digest our data. 
        $scope.$digest(); 
        // Replace the compiled output to the page. 
        $("#table_id").html($compiled); 
       }]) 

     }