Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Usando o ng-repeat

Boa tarde, estou com problemas na hora de uma função consumir uma API e me retornar os dados.

angular.module("courses").controller("CourseController",function($scope, $http){
    'use strict';

    $scope.saveCourse = function (){

        data = {
            "name":    $("#name").val(),
            "startDate": $("#startDate").val(),
            "workload": $("#workload").val(),
            "weekdays": $("#weekdays").val(),
            "explicationMovie": $("#explicaiton-movie").val()

        };

        $http.post("/Cursos/rest/accessCourses/insertCourse", data).success(function(data){
            $scope.json = data;
        }).error(function(error){
            console.log(error);
        });

    }

    $scope.searchCourse = function(){
        $http.post("/Cursos/rest/accessCourses/selectCourse").success(function(data){
            console.log(data);
        });
    }
});

E minha consulta no banco de dados está assim:

    public List<Course> searchCourse(){

        String selectCourse = "SELECT * FROM cursos";
        List<Course> listCourse = new ArrayList<Course>();

        try{
            java.sql.Statement smt = connectionDB.createStatement();
            ResultSet rs = smt.executeQuery(selectCourse);

            while(rs.next()){

                Course course = new Course();

                int id                     = rs.getInt("id");
                String name             = rs.getString("nome");
                String date             = rs.getString("data_inicio");
                String weekdays         = rs.getString("quantidade_dias");
                String workload         = rs.getString("carga_horaria");
                String explicationMovie = rs.getString("video_explicativo");

                course.setId(id);
                course.setName(name);
                course.setDate(date);
                course.setWeekdays(weekdays);
                course.setWorkload(workload);
                course.setExplicationMovie(explicationMovie);
                listCourse.add(course);
            }
        }catch(SQLException e){
            e.printStackTrace();
        }

        return listCourse;
    }

Não estou conseguindo atribuir os dados no ng-repeat, ele não executa minha função 'searchCourse', segue o HTML

                    <tbody>
                        <tr ng-repeat="course in controller.searchCourse">
                            <td>{{course.nome}}</td>
                            <td>{{course.data_inicio}}</td>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td>
                                <button type="button" class="btn btn-warning">Editar</button>
                                <button type="button" class="btn btn-danger">Editar</button>
                            </td>
                        </tr>
                    </tbody>

Como faço para poder executar a função no repeat?

2 respostas

Olá!

No seu angular vc está usando o método POST para recuperar as informações do backend. O correto seria utilizar o método GET. Revise a aula 3 do curso de angular para vc ver como faz. Além disso o seu backend aparentemente está retornando uma lista, quando deveria retornar um json com a lista.

Grato!

solução!

Resolvi, só passei uma variavel dentro da função e chamei ela no ng-repeat

    $http.post("/Cursos/rest/accessCourses/selectCourse").success(function(datas){
        $scope.teste = datas;

    });