2017-03-05 2 views
0

角度アプリは、データテーブルプラグインを使用してテーブルを表示するjqueryアプリに組み込まれています。 この表では、ページがロードされ、サーバー側のAJAX呼び出しが完了した後に、ボタンとリンクのHTMLが生成されます。ディレクティブを処理する方法(jQuery Datatablesを使用して)HTMLがロードされた後でディレクティブを処理する方法は?

生成されたHTMLボタンに適用される属性レベル指示文my-directiveを作成しました。 like <button my-directive>delete</button>

Angular APPが初期化された後にHTMLが生成されるため、my-directive属性は有効ではありません。

AJAX呼び出しが完了した後で、ディレクティブを処理するにはどうすればよいですか?

(私はデータテーブルのdrawCallbackメソッドからAJAX呼び出し完了のイベントをキャプチャしています。

+0

代わりに、私たちは青の外に推測させるの、あなたのコードに – davidkonrad

+0

@davidkonradを表示してください。関連 - http://stackoverflow.com/questions/42648788/datatabes-how-to-get-pagination-working- when-table-html-compilation-with-angul –

答えて

0

ソリューションは、角使ってデータテーブルによって生成されたHTMLを再コンパイル

  1. です。

これを行うには、次のコードをデータテーブル構成に追加する必要があります。

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); 
       }]) 

     } 
関連する問題