Ng-table: Classificando o problema após a construção do grunt

Criado em 3 mar. 2014  ·  29Comentários  ·  Fonte: esvit/ng-table

A classificação não funcionará após 'grunt build', presumo que seja o js-minify que de alguma forma o quebra. Nada acontece quando clico em um cabeçalho. É estranho que tudo o mais funcione. Alguém com problemas semelhantes?

Aqui está meu controlador de diretiva

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

Comentários muito úteis

No meu caso, não era o destino jsminify. Mas era o alvo do htmlmin. Alterei collapseBooleanAttributes para falso e isso resolveu o problema para mim. Aqui está toda a configuração do destino:

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

Todos 29 comentários

Eu estou enfrentando o mesmo problema.

No meu caso, não era o destino jsminify. Mas era o alvo do htmlmin. Alterei collapseBooleanAttributes para falso e isso resolveu o problema para mim. Aqui está toda a configuração do destino:

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

Ótimo, isso também resolveu meu problema. Obrigado!

Eu enfrentei esse mesmo problema hoje. Isso provou ser útil.

Porém, não estou convencido se esta solução é suficiente para considerar o problema encerrado. Todo o resto funciona bem sem editar o Gruntfile.js. Por que ng-table não está além do meu conhecimento.

a correção funcionou para mim também. Mas isso realmente deveria ser reaberto. Deve haver uma menção no leia-me sobre

a correção funcionou para mim também

Isso não funciona para mim. Eu uso o bower e tentei tanto com a versão postada acima quanto com esta mudança:
src: ['_.html', 'views / {, _ /} _. html', 'bower_components / {, __ /} _. html'],

Esta é a lista de arquivos html que possuo.

$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

Como essa correção deve funcionar? Qual é a causa raiz? Tenho AngularJS versão 1.2.15

Obrigado!.

Hmmm ... parece que $templateCache é usado na minha situação e é por isso que ignoro o padrão "* .html" acima

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

Eu resolvi meu problema. Substituí 'sortable = "' name '" "por' data-sortable =" 'name' "" e funciona. Veja isso:
http://bit.ly/1BgfqTu

A abordagem de @faisalferoz funcionou para nós também. Para o destino htmlmin, alterando collapseBooleanAttributes para false.

novamente @esvit, isso realmente deve estar no readme. este é um recurso importante que rompe com uma etapa de construção de produção padrão e bastante comum

A abordagem de @andreicristianpetcu funcionou para nós também (a equipe está mudando para isso para que ainda possamos colher os benefícios das otimizações do gulp-htmlmin em outros lugares).

Você é meu herói, se eu não tivesse encontrado essa solução, tenho certeza de que teria passado o resto da minha noite nisso.

OBRIGADA!!! Isso estava me deixando louco

alterar collapseBooleanAttributes no Gruntfile para false ainda corrige esse problema - obrigado por descobrir isso.

+1 para a solução alternativa de @faisalferoz .

Tive esse problema hoje.

Nenhuma mudança no arquivo grunt collapseBooleanAttributes: true

Isso o classificou: sortable => data-sortable

Resolvi esse problema alterando collapseBooleanAttributes: para false no htmlmin.dist.options do Gruntfile

Na verdade, tive que fazer duas coisas ... alterar collapseBooleanAttributes: para false e também alterar o código de <td data-title="'App score'" sortable="'gender'" >{{content.gender}}</td> para <td sortable="'gender'" data-title="'App score'" >{{content.gender}}</td> trabalhando apenas com classificação de dados não consertou pra mim ...

@ Jony-Y isso é estranho. Então você teve que mudar a ordem de como especificou os atributos ngTable nos elementos <td> ?

Ótimo, isso também resolveu meu problema. Obrigado!

Estou mudando collapseBooleanAttributes: true para false , a classificação pode funcionar, obrigado

Ambas as soluções funcionaram para mim.
No entanto, eu também estava tendo um problema de CSS (veja as 2 setas para cima em colunas não classificadas):
ng-table-css-min

Definir a seguinte opção corrigiu o problema:

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


@andreicristianpetcu +1 Funcionou para mim também!

Estou feliz que funcionou: D

alterar collapseBooleanAttributes resolveu meu problema, thx

Usar dados classificáveis ​​funcionou para mim.

Mudar para o arquivo grunt collapseBooleanAttributes: true fez com que funcionasse novamente em um segundo.

Isso não me ajudou em nada: sortable => data-sortable

obrigado pelas dicas galera ...

htmlmin

Resolvido para mim.

Esta página foi útil?
0 / 5 - 0 avaliações