Ng-table: Problème de tri après grunt build

Créé le 3 mars 2014  ·  29Commentaires  ·  Source: esvit/ng-table

Le tri ne fonctionnera pas après "grunt build", je suppose que c'est le js-minify qui le casse d'une manière ou d'une autre. Rien ne se passe lorsque je clique sur un en-tête. Étrange cependant que tout le reste fonctionne. Quelqu'un a des problèmes similaires ?

Voici mon contrôleur de directive

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()));
                }
            });
        });
}]

Commentaire le plus utile

Dans mon cas, ce n'était pas la cible jsminify. Mais était la cible htmlmin. J'ai changé collapseBooleanAttributes en false et cela a résolu le problème pour moi. Voici toute la configuration de la cible :

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 %>'
        }]
      }
    }

Tous les 29 commentaires

Je suis confronté au même problème.

Dans mon cas, ce n'était pas la cible jsminify. Mais était la cible htmlmin. J'ai changé collapseBooleanAttributes en false et cela a résolu le problème pour moi. Voici toute la configuration de la cible :

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 %>'
        }]
      }
    }

Super, ça a aussi résolu mon problème. Merci!

J'ai été confronté à ce même problème aujourd'hui. Cela s'est avéré utile.

Bien que je ne sois pas convaincu que cette solution soit suffisante pour considérer le problème comme clos. Tout le reste fonctionne bien sans modifier le Gruntfile.js. Pourquoi ng-table ne le fait pas est au-delà de mes connaissances.

le correctif a fonctionné pour moi aussi. Mais cela devrait vraiment être rouvert. Il devrait y avoir une mention dans le fichier readme à propos de

le correctif a fonctionné pour moi aussi

Cela ne fonctionne pas pour moi. J'utilise bower et j'ai essayé les deux avec la version postée ci-dessus et avec ce changement :
src : ['_.html', 'views/{,_/}_.html', 'bower_components/{,__/}_.html'],

Voici la liste des fichiers html que j'ai.

$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

Comment ce correctif est-il censé fonctionner ? Quelle est la cause profonde ? J'ai la version 1.2.15 d'AngularJS

Merci!.

Hmmm... il semble que $templateCache soit utilisé dans ma situation et c'est pourquoi ignorer le modèle "*.html" ci-dessus

    $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>'),

J'ai résolu mon problème. J'ai remplacé 'sortable="'name'"" par 'data-sortable="'name'"" et cela fonctionne. Regarde ça:
http://bit.ly/1BgfqTu

L'approche de @faisalferoz a fonctionné pour nous aussi. Pour la cible htmlmin, en changeant collapseBooleanAttributes en false.

encore une fois

L'approche de @andreicristianpetcu a également fonctionné pour nous (l'équipe est en train de passer à cela afin que nous puissions toujours profiter des optimisations de gulp-htmlmin ailleurs).

Tu es mon héros, si je n'avais pas trouvé cette solution, je suis sûr que j'aurais passé le reste de ma soirée sur celle-ci.

MERCI!!! Cela me rendait fou

changer collapseBooleanAttributes dans le Gruntfile en false résout toujours ce problème - merci de l'avoir trouvé.

+1 à la solution de contournement de @faisalferoz .

J'ai eu ce problème aujourd'hui.

Aucun changement au fichier grunt collapseBooleanAttributes: true

Cela l'a trié : sortable => data-sortable

J'ai résolu ce problème en remplaçant collapseBooleanAttributes: par false dans le htmlmin.dist.options Gruntfile

En fait, j'ai dû faire deux choses... changer le collapseBooleanAttributes: en false et aussi changer le code de <td data-title="'App score'" sortable="'gender'" >{{content.gender}}</td> en <td sortable="'gender'" data-title="'App score'" >{{content.gender}}</td> travaillant uniquement avec le tri des données n'a pas résolu pour moi...

@Jony-Y c'est étrange. Vous avez donc dû changer l'ordre dans lequel vous avez spécifié les attributs ngTable dans les éléments <td> ?

Super, ça a aussi résolu mon problème. Merci!

Je change collapseBooleanAttributes: true en false , le tri peut fonctionner , merci

Les deux solutions ont fonctionné pour moi.
Cependant, j'avais également un problème CSS (voir les 2 flèches vers le haut sur les colonnes non triées):
ng-table-css-min

La définition de l'option suivante a résolu le problème :

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


@andreicristianpetcu +1 Cela a fonctionné pour moi aussi !

Je suis content que ça marche :D

la modification de collapseBooleanAttributes a résolu mon problème, merci

L'utilisation du tri des données a fonctionné pour moi.

Modification du fichier grunt collapseBooleanAttributes : true l'a fait fonctionner à nouveau en une seconde.

Cela ne m'a pas du tout aidé : sortable => data-sortable

merci pour les conseils les gars...

htmlmin

Résolu pour moi.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

ulise picture ulise  ·  5Commentaires

andreicristianpetcu picture andreicristianpetcu  ·  6Commentaires

alienriquebm picture alienriquebm  ·  6Commentaires

raul1991 picture raul1991  ·  6Commentaires

esvit picture esvit  ·  37Commentaires