Ng-table: gruntビルド後のソートの問題

作成日 2014年03月03日  ·  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が機能しない理由は私の知識を超えています。

修正は私にも有効でした。 しかし、これは本当に再開されるべきです。 についてのreadmeに言及があるはずです

修正は私のためにも働いた

これは私にはうまくいきません。 私は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のアプローチは私たちにも

繰り返しますが、 @ esvitこれは実際にreadmeに含まれているはずです。 これは、標準的で非常に一般的な本番ビルドステップとは異なる重要な機能です。

@andreicristianpetcuのアプローチは私たちにも

あなたは私のヒーローです、もし私がこの解決策を見つけられなかったら、私は私の夜の残りをこれに費やしたであろうと確信しています。

ありがとうございました!!! これは私を狂わせていました

GruntfileのcollapseBooleanAttributesをfalseに変更しても、この問題は修正されます-見つけてくれてありがとう。

@faisalferozの回避策に+1します。

今日この問題がありました。

gruntファイルに変更はありませんcollapseBooleanAttributes: true

これで並べ替えられました: sortable => data-sortable

Gruntfileのhtmlmin.dist.options collapseBooleanAttributes:falseに変更することで、この問題を解決しました。

私は実際に2つのことをしなければなりませんcollapseBooleanAttributes: ... false変更し、コードを<td data-title="'App score'" sortable="'gender'" >{{content.gender}}</td>から<td sortable="'gender'" data-title="'App score'" >{{content.gender}}</td>してデータの並べ替えのみを行います私のために修正しませんでした...

@ Jony-Yそれは奇妙です。 したがって、 <td>要素でngTable属性を指定する方法の順序を切り替える必要がありましたか?

素晴らしい、それは私の問題も解決しました。 ありがとう!

collapseBooleanAttributes: truefalseに変更します、並べ替えは機能します、ありがとう

どちらの解決策も私にとってはうまくいきました。
ただし、CSSの問題も発生していました(並べ替えられていない列の上向き矢印2つを参照)。
ng-table-css-min

次のオプションを設定すると、問題が修正されました。

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


@andreicristianpetcu +1それは私にとってもうまく

私はそれがうまくいったことをうれしく思います:D

変更するcollapseBooleanAttributesは私の問題を解決しました、thx

データソート可能を使用することは私のために働きました。

gruntファイルcollapseBooleanAttributesに変更します:trueは、すぐに再び機能するようにしました。

これはまったく役に立ちませんでした:sortable => data-sortable

ヒントの人のためのthx ...

htmlmin

私のために解決しました。

このページは役に立ちましたか?
0 / 5 - 0 評価