数据表:在drawCallBack之后使用Angular编译表HTML时,如何使分页工作?

时间:2017-03-07 12:49:45

标签: jquery html angularjs datatable datatables

这是我的drawCallBack函数:

"fnDrawCallback": function( oSettings ) {
            console.log("dt redrawn");
            var selector = $("#example_table");
            console.log(selector);

            function recompileForAngular() {
                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 = $(selector).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.
                    $(selector).html($compiled);
                }]);
            }

            function init(recompile) {
                recompile();
            }

            init(recompileForAngular);
        },

这在加载数据表时工作正常,但是在点击另一个页面(例如第二页)时,表格HTML不会被从AJAX调用返回的新数据刷新。

似乎angular正在编译从$("#example_table").html();得到的旧HTML。

在渲染完成时捕获事件的方法是什么(这样我可以重新编译新的,新呈现的HTML)?

1 个答案:

答案 0 :(得分:0)

更改选择器,以表格主体为目标可解决此问题。 var selector = $("#exampleTable tbody");