angular js ng-click以编程方式添加到datatable中的行上

时间:2014-12-24 10:30:22

标签: angularjs primefaces

我有一个分页表(primeface datatable),更改页面,内容通过ajax加载。 在ajax请求的完整事件中,data-ng-click属性被添加到所有行。

以下是tr的呈现方式

<tr data-ng-click="init(1,2)" class="ui-widget-content ui-datatable-even ui-datatable-selectable ui-state-highlight" aria-selected="true" role="row" data-rk="1-2" data-ri="0" >

以下是我将数据-ng-click属性添加到tr的方法,以及如何定义角度app和控制器:

angularizeDataTable();

function angularizeDataTable(){
    $("[data-rk]").each(function(i, val){
        idt = $(this).attr("data-rk").split("-")[0];
        idv = $(this).attr("data-rk").split("-")[1];
        $(this).attr("data-ng-click", "init("+idt+","+idv+")");
    })
    .promise().done(function(){
        app = angular.module('myapp', []);
        app.controller('MainController', function($scope, $http){
            $scope.init = function(idt,idv){
                alert(idt+","+idv);
            };
        });
    });
}

angularizeDataTable函数在页面加载时执行,每次我更改页面

<p:ajax event="page" oncomplete="angularizeDataTable()" />

但是在页面事件触发后,数据-ng-click被忽略,为什么?

1 个答案:

答案 0 :(得分:0)

我认为您需要在元素上运行$ compile服务以使ng-click正常工作