Corrigindo o exemplo de AngularJS

angularjs-abertura

Onde foi parar a lista com as notas? Acontece que a partir da versão 1.6.X do AngularJS este exemplo deixou de funcionar corretamente pois não conseguir carregar o arquivo JSON com a lista de alunos e notas.

Motivo? Na verdade dois…

A primeira diz respeito ao objeto $http.get cuja função success() deixou de existir, a solução foi substituí-la pela função then():

...
    /*
     * carrega a base de dados via HTTP
     */
    this.file=$http.get('exemplo-abj-2.json').then(function(result) {
        ...
        exemplo2.turma=result.data;
    });
...

A outra é quanto a estrutura e conteúdo dos dados enviados para a função then(), no exemplo original eles consistiam somente do conteúdo do arquivo JSON mas agora também contém também informações sobre o processo transferência:

{
    "data": [ ... ],
    "status": 200,
    "config": {
        "method": "GET",
        "transformRequest": [null],
        "transformResponse": [null],
        "url": "exemplo-abj-2.json",
        "headers": {
            "Accept": "application/json, text/plain, */*"
        }
    },
    "statusText": "OK"
}

Então a única coisa que preciso repassar é o objeto “data” dentro da variável result — aliás, a variável mudou de nome justamente para refletir seu novo conteúdo. Aliás, aproveitei para acrescentar uma verificação do status da operação para retornar alguma informação ao usuário caso algo errado aconteça.

Claro, estas mudanças já estão no repositório de arquivos do blog.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s