Ng-table: Sortierproblem nach Grunzen Build

Erstellt am 3. März 2014  ·  29Kommentare  ·  Quelle: esvit/ng-table

Das Sortieren funktioniert nach 'grunt build' nicht, ich gehe davon aus, dass es das js-minify ist, das es irgendwie kaputt macht. Wenn ich auf eine Kopfzeile klicke, passiert nichts. Seltsam aber, dass alles andere funktioniert. Jemand mit ähnlichen Problemen?

Hier ist mein Direktiven-Controller

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

Hilfreichster Kommentar

In meinem Fall war es nicht das jsminify-Ziel. Aber war das HTMLmin-Ziel. Ich habe collapseBooleanAttributes in false geändert und es hat das Problem für mich gelöst. Hier ist die gesamte Konfiguration des Ziels:

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

Alle 29 Kommentare

Ich stehe vor dem gleichen Problem.

In meinem Fall war es nicht das jsminify-Ziel. Aber war das HTMLmin-Ziel. Ich habe collapseBooleanAttributes in false geändert und es hat das Problem für mich gelöst. Hier ist die gesamte Konfiguration des Ziels:

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, das hat mein Problem auch gelöst. Vielen Dank!

Ich stand heute vor genau diesem Problem. Dies erwies sich als nützlich.

Ich bin jedoch nicht überzeugt, ob diese Lösung ausreicht, um das Problem als abgeschlossen zu betrachten. Alles andere funktioniert einwandfrei, ohne die Gruntfile.js zu bearbeiten. Warum ng-table nicht funktioniert, entzieht sich meiner Kenntnis.

bei mir hat der Fix auch funktioniert. Aber das sollte wirklich wieder geöffnet werden. Es sollte eine Erwähnung in der Readme geben über

bei mir hat der Fix auch funktioniert

Dies funktioniert bei mir nicht. Ich benutze Bower und habe beides mit der oben geposteten Version und mit dieser Änderung versucht:
src: ['_.html', 'views/{,_/}_.html', 'bower_components/{,__/}_.html'],

Dies ist die Liste der HTML-Dateien, die ich habe.

$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

Wie soll dieser Fix funktionieren? Was ist die Ursache? Ich habe AngularJS-Version 1.2.15

Dankeschön!.

Hmmm... es scheint, dass $templateCache in meiner Situation verwendet wird und deshalb das obige Muster "*.html" ignoriert wird

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

Ich habe mein Problem gelöst. Ich habe 'sortable="'name'"" durch 'data-sortable="'name'"" ersetzt und es funktioniert. Schau dir das an:
http://bit.ly/1BgfqTu

Der Ansatz von

nochmal @esvit das sollte eigentlich in der readme stehen. Dies ist ein wichtiges Merkmal, das von einem standardmäßigen und recht häufigen Produktionsschritt abweicht

Der Ansatz von

Du bist mein Held, hätte ich diese Lösung nicht gefunden, hätte ich sicher den Rest meines Abends damit verbracht.

DANKE SCHÖN!!! Das hat mich wahnsinnig gemacht

Das Ändern von collapseBooleanAttributes in der Gruntdatei auf false behebt dieses Problem immer noch - danke, dass du das gefunden hast.

+1 zur Problemumgehung von

Hatte dieses Problem heute.

Keine Änderung an der Grunt-Datei collapseBooleanAttributes: true

Das hat es sortiert: sortable => data-sortable

Ich löste dieses Problem , indem collapseBooleanAttributes: auf false in Gruntfile von htmlmin.dist.options

Ich musste eigentlich zwei Dinge tun... ändern Sie collapseBooleanAttributes: in false und ändern Sie auch den Code von <td data-title="'App score'" sortable="'gender'" >{{content.gender}}</td> in <td sortable="'gender'" data-title="'App score'" >{{content.gender}}</td> mit Datensortierung arbeiten hat bei mir nicht behoben...

@Jony-Y das ist seltsam. Sie mussten also die Reihenfolge ändern, in der Sie die ngTable-Attribute in den <td> Elementen angegeben haben?

Super, das hat mein Problem auch gelöst. Vielen Dank!

Ich ändere collapseBooleanAttributes: true in false , die Sortierung kann funktionieren, Danke

Bei mir haben beide Lösungen funktioniert.
Ich hatte jedoch auch ein CSS-Problem (siehe die 2 Aufwärtspfeile in nicht sortierten Spalten):
ng-table-css-min

Das Festlegen der folgenden Option hat das Problem behoben:

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


@andreicristianpetcu +1 Bei mir hat es auch funktioniert!

freut mich, dass es geklappt hat :D

Das Ändern von CollapseBooleanAttributes hat mein Problem gelöst, thx

Die Verwendung von data-sortable hat bei mir funktioniert.

Wechseln Sie in die Grunt-Datei "collapBooleanAttributes: true", damit es in einer Sekunde wieder funktioniert.

Das hat mir überhaupt nicht geholfen: sortierbar => datensortierbar

thx für die tipps jungs...

htmlmin

Für mich gelöst.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen