дата занимает слишком много времени при рендеринге около 300 строк, которые содержат некоторые условия в angularjs - PullRequest
2 голосов
/ 26 июня 2019

Я использую angular-datatables для отображения данных в виде сетки в моем проекте AngularJs.

Но проблема, с которой я столкнулся, заключается в том, что при добавлении столбца операция , содержащего ссылку для удаления, обновления и т. Д., Это уменьшает скорость рендеринга строк, поэтому для отображения только 300 строк требуется около 8 секунд.

это то, что я делаю, чтобы показать этот столбец:

DTColumnBuilder.newColumn('id').withTitle($filter('translate')('GLOBAL.ACTIONS')).notSortable().withOption('width', '5%')
    .renderWith((data, type, full, meta) => {
        let editBtn     = <button ng-click="edit(${full.id})" permission permission-only="'EDIT_PLAN'" ng-if="${full.is_owner && !full.confirmed}" class='btn btn-outline-info'><span class='icon mdi mdi-pencil'></span></button>,
            delBtn      = <button class='btn btn-outline-danger' ng-click='delete(${full.id})' permission permission-only="'DEL_PLAN'" ng-if="${full.is_owner && !full.confirmed}"><span class='icon mdi mdi-delete'></span></button>,
            activeBtn   = <button ng-click="changeStatus(${full.id}, 1)" permission permission-only="'ACTIVE_PRODUCTION_PLAN'" ng-if="${full.is_owner && !full.confirmed && !full.is_active}" class='btn btn-outline-success' uib-tooltip="{{'GLOBAL.DO_ACTIVE' | translate}}"><span class='icon mdi mdi-check'></span></button>,
            deActiveBtn = <button class='btn btn-outline-secondary' ng-click='changeStatus(${full.id}, 0)' permission permission-only="'ACTIVE_PRODUCTION_PLAN'" ng-if="${full.is_owner && !full.confirmed && full.is_active}" uib-tooltip="{{'GLOBAL.DO_INACTIVE' | translate}}"><span class='icon mdi mdi-close'></span></button>;

        return <div class='btn-group'>${delBtn + editBtn + activeBtn + deActiveBtn} </div>;
    })

Как видите, существует много условных блоков, основанных на разрешениях пользователя. Поскольку у пользователя могут быть разные разрешения, и я не показываю, что некоторые рабочие ссылки основывают его / его разрешения.

Когда я комментирую код этого столбца, все работает нормально, и только при возврате этого кода рендеринг занимает слишком много времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...