Ng-table: Проблема сортировки после сборки ворчания

Созданный на 3 мар. 2014  ·  29Комментарии  ·  Источник: esvit/ng-table

Сортировка не будет работать после 'grunt build', я предполагаю, что это js-minify как-то ее ломает. Когда я щелкаю заголовок, ничего не происходит. Как ни странно, все остальное работает. Кто-нибудь с подобными проблемами?

Вот мой контроллер директив

controller: ['$scope', '$filter', 'ScoresAPI', 'ngTableParams', function($scope, $filter, ScoresAPI, ngTableParams)
{
    ScoresAPI.getLeagueStandings($scope.leagueId)
        .success(function(data)
        {
            $scope.tableParams = new ngTableParams({
                page: 1,
                count: data.length,
                sorting: false
            }, {
                total: data.length,
                counts: [],
                getData: function($defer, params)
                {
                    var orderedData = params.sorting() ? $filter('orderBy')(data, params.orderBy()) : data;
                    $defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));
                }
            });
        });
}]

Самый полезный комментарий

В моем случае это была не цель jsminify. Но был целью htmlmin. Я изменил collapseBooleanAttributes на false, и это решило проблему для меня. Вот вся конфигурация цели:

htmlmin: {
      dist: {
        options: {
          collapseWhitespace: true,
          collapseBooleanAttributes: false,
          removeCommentsFromCDATA: true,
          removeOptionalTags: true
        },
        files: [{
          expand: true,
          cwd: '<%= yeoman.dist %>',
          src: ['*.html', 'views/{,*/}*.html', 'app_components/{,**/}*.html'],
          dest: '<%= yeoman.dist %>'
        }]
      }
    }

Все 29 Комментарий

Я столкнулся с той же проблемой.

В моем случае это была не цель jsminify. Но был целью htmlmin. Я изменил collapseBooleanAttributes на false, и это решило проблему для меня. Вот вся конфигурация цели:

htmlmin: {
      dist: {
        options: {
          collapseWhitespace: true,
          collapseBooleanAttributes: false,
          removeCommentsFromCDATA: true,
          removeOptionalTags: true
        },
        files: [{
          expand: true,
          cwd: '<%= yeoman.dist %>',
          src: ['*.html', 'views/{,*/}*.html', 'app_components/{,**/}*.html'],
          dest: '<%= yeoman.dist %>'
        }]
      }
    }

Отлично, это тоже решило мою проблему. Спасибо!

Я сегодня столкнулся с этой проблемой. Это оказалось полезным.

Хотя, я не уверен, достаточно ли этого решения, чтобы считать проблему закрытой. Все остальное работает без редактирования Gruntfile.js. Почему ng-table не работает, мне неизвестно.

исправление сработало и для меня. Но это действительно должно быть открыто. В ридми должно быть упоминание о

исправление сработало и для меня

У меня это не работает. Я использую bower, и я пробовал как с версией, опубликованной выше, так и с этим изменением:
src: ['_.html', 'views / {, _ /} _. html', 'bower_components / {, __ /} _. html'],

Это список имеющихся у меня файлов html.

$ls -la bower_components/**/*.html
-rw-rw-r-- 1 andrei andrei 1585 iun  7  2013 bower_components/es5-shim/tests/index.html
-rw-rw-r-- 1 andrei andrei 1546 iun  7  2013 bower_components/es5-shim/tests/index.min.html

Как это исправление должно работать? В чем основная причина? У меня AngularJS версии 1.2.15

Спасибо!.

Хммм ... похоже, что в моей ситуации используется $templateCache и поэтому игнорирую шаблон "* .html" выше

    $templateCache.put('ng-table/header.html', '<tr> <th ng-repeat="column in $columns" ng-class="{ \'sortable\': parse(column.sortable), \'sort-asc\': params.sorting()[parse(column.sortable)]==\'asc\', \'sort-desc\': params.sorting()[parse(column.sortable)]==\'desc\' }" ng-click="sortBy(column, $event)" ng-show="column.show(this)" ng-init="template=column.headerTemplateURL(this)" class="header {{column.class}}"> <div ng-if="!template" ng-show="!template" ng-bind="parse(column.title)"></div> <div ng-if="template" ng-show="template"><div ng-include="template"></div></div> </th> </tr> <tr ng-show="show_filter" class="ng-table-filters"> <th ng-repeat="column in $columns" ng-show="column.show(this)" class="filter"> <div ng-repeat="(name, filter) in column.filter"> <div ng-if="column.filterTemplateURL" ng-show="column.filterTemplateURL"> <div ng-include="column.filterTemplateURL"></div> </div> <div ng-if="!column.filterTemplateURL" ng-show="!column.filterTemplateURL"> <div ng-include="\'ng-table/filters/\' + filter + \'.html\'"></div> </div> </div> </th> </tr>'),

Я решил свою проблему. Я заменил 'sortable = "' name '" "на' data-sortable =" 'name' "", и он работает. Проверь это:
http://bit.ly/1BgfqTu

Подход @faisalferoz тоже сработал для нас. Для цели htmlmin изменение collapseBooleanAttributes на false.

опять @esvit это действительно должно быть в ридми. это важная функция, которая выходит за рамки стандартного и довольно распространенного этапа производственной сборки.

Подход @andreicristianpetcu тоже сработал для нас (команда переключается на него, чтобы мы могли по-прежнему пользоваться преимуществами оптимизации gulp-htmlmin в других местах).

Ты мой герой, если бы я не нашел это решение, я уверен, что потратил бы остаток своего вечера на это.

СПАСИБО!!! Это сводило меня с ума

изменение collapseBooleanAttributes в Gruntfile на false по-прежнему решает эту проблему - спасибо, что нашли это.

+1 к обходному пути

Была эта проблема сегодня.

Без изменений в файле grunt collapseBooleanAttributes: true

Это отсортировано: sortable => data-sortable

Я решил эту проблему, изменив collapseBooleanAttributes: на false в htmlmin.dist.options Gruntfile.

На самом деле мне пришлось сделать две вещи ... изменить collapseBooleanAttributes: на false а также изменить код с <td data-title="'App score'" sortable="'gender'" >{{content.gender}}</td> на <td sortable="'gender'" data-title="'App score'" >{{content.gender}}</td> работая только с сортировкой данных не исправил для меня ...

@ Jony-Y, это странно. Значит, вам пришлось изменить порядок указания атрибутов ngTable в элементах <td> ?

Отлично, это тоже решило мою проблему. Спасибо!

Я меняю collapseBooleanAttributes: true на false , сортировка работает, спасибо

Оба решения сработали для меня.
Однако у меня также была проблема с CSS (см. 2 стрелки вверх на несортированных столбцах):
ng-table-css-min

Установка следующего параметра устранила проблему:

        cssmin: {
            options: {
                advanced: false
            }
        },


@andreicristianpetcu +1 У меня тоже сработало!

Я рад, что это сработало: D

изменение collapseBooleanAttributes решило мою проблему, спасибо

Использование сортировки данных сработало для меня.

Измените файл grunt collapseBooleanAttributes: true, и он снова заработает через секунду.

Это мне совсем не помогло: sortable => data-sortable

спасибо за советы, ребята ...

htmlmin

Решено за меня.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

faceleg picture faceleg  ·  11Комментарии

ulise picture ulise  ·  5Комментарии

richtmat picture richtmat  ·  7Комментарии

penchiang picture penchiang  ·  5Комментарии

batjko picture batjko  ·  3Комментарии