如果没有页面刷新,ng-table不会更新

时间:2015-02-19 19:45:36

标签: javascript angularjs pusher ngtable

我用ng-table遇到了一些奇怪的行为。当我刷新页面时,reload()方法工作正常,通过套接字事件更新新数据。当我从应用程序的一部分转到下一部分没有完全刷新时,套接字事件调用相同的功能,该功能在刷新后工作但无法重新加载表。

这是表格:

 vm.communicationEventLogsTableParams = new ngTableParams({
     page: 1,            // show first page
     count: 5,
     sorting: {
         createdDate: 'dsc'     // initial sorting
     }
 }, {
    counts: [5,10,25,50],
    total: vm.communicationEventLogs ? vm.communicationEventLogs.length : 0, // length of data
    getData: function ($defer, params) {

    //load data from resource

     CommunicationEventLog.getCommunicationEventLogs({workorderId: $stateParams.workorderId}, function (data) {
        vm.communicationEventLogs = data;
        console.log('hi');

        console.log('GETTING DATA FOR COMM EVENT LOG TABLE');
        var filteredData = vm.communicationEventLogs;
        filteredData = $filter('filter')(filteredData, vm.mySearch);
        if (filteredData) params.total(filteredData.length);

        var orderedData = params.sorting() ?
            $filter('orderBy')(filteredData, params.orderBy()) :
            filteredData;
        if (orderedData)
            $defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));

        console.log(params);
    });

}
});

这是调用reload的函数,由socket事件调用:

 realTimeChannelFactory.on(realTimeChannelFactory.events.CELA, function (args) {

     console.log("RT_Event: Communication Log Event!");

     vm.communicationEventLogsTableParams.reload();

 });

数据在DOM中,因为我可以在触发事件时将其记录到控制台。最奇怪的部分是,如果我过滤表格,ng-table会重新加载,表格中会显示数据。

0 个答案:

没有答案