Pergunta

Atualmente estou trabalhando em uma tabela que requer alguns de classificação.Desde que o projeto está usando Angular (v1).2.12) eu comecei a usar o ngTable (módulo v0.3.2).

A ordenação padrão é o título, mas o ano também pode ser usado como opção de ordenação.Quando eu carrego a página funciona bem, mas quando eu clicar em um título de tabela que a coluna clicada fica resolvido, mas a classificação não é refletida no cabeçalho, também a classificação param não é mais definido.

Quando eu iniciar a depuração eu vejo que os parâmetros.classificação() retorna: {title:indefinido} A partir desse momento ele também não é mais possível clicar em um classificáveis cabeçalho, que ele não faz mais nada.

Eu acho que eu estou faltando alguma coisa, parece que não consegue encontrar o que que

Meus dados são:

[{
    "year": 2014,
    "title": "Golden title"
}, {
    "year": 2013,
    "title": "Golden title"
}, {
    "year": 2013,
    "title": "Another title"
}, {
    "year": 2014,
    "title": "Whetshoverwerd xsade  aas"
}, {
    "year": 2013,
    "title": "Another brilliant title"
}, {
"year": 2013,
    "title": "Wherever I may SOAP"
}]

A vista:

<table ng-table="tableParams" class="table">
    <tbody>
        <tr ng-repeat="document in $data">
            <td data-title="'Year'" sortable="'year'">{{document.year}}</td>
            <td data-title="'Title'" sortable="'title'"><a href="#">{{document.title}}</a></td>
        </tr>
    </tbody>
</table>

A vista é uma directiva,

angular.module('appDirectives').directive('myModuleDirective', function () {
    // Runs during compile
    return {
        restrict: 'E',
        templateUrl: 'path/to/view.html',
        replace: true,
        controller: function ($scope, $timeout, $filter, TitleList, ngTableParams) {

            $scope.tableParams = new ngTableParams({
                page: 1, // show first page
                count: 10, // count per page
                sorting: {
                    title: 'asc' // initial sorting
                }
            }, {
                total: 0, // length of data
                getData: function ($defer, params) {
                    TitleList.get({}, function (data) {
                        var orderedData = params.sorting() ?
                            $filter('orderBy')(data, params.orderBy()) :
                            data;

                        params.total(orderedData.length);
                        orderedData = orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count());
                        $defer.resolve(orderedData);
                    });
                }
            });
        }
    };
Foi útil?

Solução

O problema ainda não está claro, para mim, no entanto, os exemplos em ngTable usar v0.3.1 e eu uso v0.3.2.O problema foi resolvido através de começar a usar a versão mais antiga.

Outras dicas

Eu tive esse problema também, pode haver alguns bugs em v0.3.2

Eu fixo um presente, substituindo linha 502 no ng-tabela de código com esta linha:

var sortingParams = (event && (event.ctrlKey || event.metaKey)) ? $scope.params.sorting() : {};

Não tenho certeza se este é o direito a correção (não sei por que 'evento' foi indefinido), mas ele resolveu o problema para mim.Então, por favor não tome isso como uma solução adequada, é só a minha 2 pence.

Eu tive esse problema, era um formato de resposta do problema.
O problema era porque eu estava retornando um objeto em vez de uma matriz, ex:

Formato incorreto:

{
"data": {
    "items": { 
        "0": {
            "post_id": "26",
            "post_date": "2015-06-24 00:00:00"

Bom Formato:

{
"data": {
    "items": [
        {
            "id": "26",
            "create_date": "2015-02-19 14:15:44",

A tabela funciona com um objeto bem, mas NÃO todas as funções.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top