Campo Data Retornando Undefined

Estou tentando capturar um valor de um componente usando angularjs 1.X, mas da classe que criei apenas um campo de data não está sendo preenchido o mesmo retorna undefined.

Segue meu controller:

angular.module(‘app’).controller(‘agendacontroller’,function($scope,agendaAPI,laboratorioAPI){
$scope.listaAgenda=[];
$scope.laboratorios = [];
$scope.agenda={};

var carregaLaboratorio = function(){
laboratorioAPI.getLaboratorios().success(function(data){
$scope.laboratorios = data;
}).error(function (data, status) {
$scope.message = "Não foi possivel conectar ao servidor tente mais tarde " + data;
});
};

$scope.agendar = function(agenda){
    agendaAPI.saveAgenda(agenda).success(function(data){
      $scope.message = "Agenda realizada com sucesso";
      $scope.formAgenda.$setPristine();
      delete $scope.agenda;
    }).error(function(data,status){
      $scope.message = "Ocorreu um problema ao criar o doador "+ data;
    });
};
carregaLaboratorio();

});

E minha página:

<script type="text/javascript">
    $(document).ready(function() {
        $("#cep_doador").mask("99.999-999", {
            placeholder : " "
        });
        $("#rg_doador").mask("99.999.999-9", {
            placeholder : " "
        });
        $("#cep_lab").mask("99.999-999", {
            placeholder : " "
        });
    });


    $(function() {
        $('#datetimepicker').datetimepicker({
            locale : 'pt-br',
            format : 'DD-MM-YYYY HH:mm:ss',
            icons : {
                previous : 'fa fa-arrow-left',
                next : 'fa fa-arrow-right',
                time : "fa fa-clock-o",
                date : "fa fa-calendar",
                up : "fa fa-arrow-up",
                down : "fa fa-arrow-down"
            }
        });
    });

</script>
<div class="container">
    <div class="alert alert-info" ng-show="message.length>0">
        {{message}}</div>
    <form name="formAgenda" class="form-horizontal">
        <h2>Doador</h2>
        <hr />

        <div class="container">
            <div ng-show="formAgenda.nome_agenda_doador.$dirty"
                ng-messages="formAgenda.nome_agenda_doador.$error">
                <div ng-message="required" class="alert alert-danger">Por
                    favor preencha o campo nome.</div>
                <div ng-message="minlength" class="alert alert-danger">O campo
                    deve possuir no mínimo 6 caracteres.</div>
            </div>

            <div class="form-group">
                <div class='col-sm-6'>
                    <label>Nome:</label> <input type="text" class="form-control"
                        id="nome_agenda_doador" name="nome_agenda_doador"
                        placeholder="Adicione o nome completo"
                        ng-model="agenda.doador.nome" ng-required="true" ng-minlength="6" />
                </div>
            </div>


            <div ng-show="formAgenda.email_agenda_doador.$dirty"
                ng-messages="formAgenda.email_agenda_doador.$error">
                <div ng-message="required" class="alert alert-danger">Por
                    favor preencha o campo email.</div>
            </div>

            <div class="form-group">
                <div class='col-sm-6'>
                    <label>Email:</label> <input type="text" class="form-control"
                        id="email_agenda_doador" name="email_agenda_doador"
                        placeholder="Adicione o email" ng-model="agenda.doador.email"
                        ng-required="true" />
                </div>
            </div>

            <div ng-show="formAgenda.rg_doador.$dirty"
                ng-messages="formAgenda.rg_doador.$error">
                <div ng-message="required" class="alert alert-danger">Por
                    favor preencha o campo rg.</div>
            </div>
            <div class="form-group">
                <div class='col-sm-6'>
                    <label>Rg:</label> <input type="text" class="form-control"
                        name="rg_doador" id="rg_doador" placeholder="Adicione o rg"
                        ng-model="agenda.doador.rg" ng-required="true" />
                </div>
            </div>

            <div ng-show="formAgenda.cep_doador.$dirty"
                ng-messages="formAgenda.cep_doador.$error">
                <div ng-message="required" class="alert alert-danger">Por
                    favor preencha o campo cep.</div>
            </div>
            <div class="form-group">
                <div class='col-sm-6'>
                    <label>Cep:</label> <input type="text" class="form-control"
                        id="cep_doador" name="cep_doador" placeholder="Adicione o cep"
                        ng-model="agenda.doador.cep" ng-required="true" />
                </div>
            </div>


            <div ng-show="formAgenda.endereco_agenda_doador.$dirty"
                ng-messages="formAgenda.endereco_agenda_doador.$error">

                <div ng-message="required" class="alert alert-danger">Por
                    favor preencha o campo endereço.</div>
                <div ng-message="minlength" class="alert alert-danger">O campo
                    deve possuir no mínimo 6 caracteres.</div>
            </div>
            <div class="form-group">
                <div class='col-sm-6'>
                    <label>Endereço:</label> <input type="text" class="form-control"
                        id="endereco_agenda_doador" name="endereco_agenda_doador"
                        placeholder="Adicione o endereço"
                        ng-model="agenda.doador.endereco" class="validate"
                        ng-required="true" ng-minlength="6" />
                </div>
            </div>
        </div>
        <h2>Escolha o laboratório</h2>
        <hr />
        <div class="container">

            <div class="form-group">
                <div class='col-sm-6'>
                    <label>Nome:
                        <select class="form-control" ng-model="agenda.laboratorio" ng-options="laboratorio.nome for laboratorio in laboratorios">
                            <option value ="">Selecione o Laboratório</option>
                        </select>
                    </label>                    
                </div> 
            </div>

            <div ng-show="formAgenda.cep_lab.$dirty"
                ng-messages="formAgenda.cep_lab.$error">
                <div ng-message="required" class="alert alert-danger">Por
                    favor preencha o campo endereço.</div>
                <div ng-message="minlength" class="alert alert-danger">O
                    campo deve possuir no mínimo 6 caracteres.</div>
            </div>

            <div class="form-group">
                <div class='col-sm-6'>
                    <label>CEP:</label> <input type="text" class="form-control"
                        id="cep_lab" name="cep_lab" value = "laboratorio.cep" placeholder="Adicione o cep"
                        ng-model="agenda.laboratorio.cep" ng-required="true" ng-disabled="true" />
                </div>
            </div>


            <div ng-show="formAgenda.agenda_laboratorio_endereco.$dirty"
                ng-messages="formAgenda.agenda_laboratorio_endereco.$error">
                <div ng-message="required" class="alert alert-danger">Por
                    favor preencha o campo nome.</div>
                <div ng-message="minlength" class="alert alert-danger">O
                    campo deve possuir no mínimo 6 caracteres.</div>
            </div>
            <div class="form-group">
                <div class='col-sm-6'>
                    <label>Endereço:</label> <input type="text" class="form-control"
                        id="agenda_laboratorio_endereco"
                        name="agenda_laboratorio_endereco"
                        placeholder="Adicione o endereço"
                        ng-model="agenda.laboratorio.endereco" ng-required="true"
                        ng-minlength="6" ng-disabled="true" />
                </div>
            </div>
        </div>

        <h2>Escolha uma data:</h2>
        <hr />
        <div class="container">
            <div ng-show="formAgenda.datetimepicker.$dirty"
                ng-messages="formAgenda.datetimepicker.$error">
                <div ng-message="required" class="alert alert-danger">Por
                    favor preencha o campo data.</div>
            </div>

            <div class="form-group">
                <div class='col-sm-6'>
                    <input ng-model="agenda.dataAgendamento" ng-required="true"
                        type="text" name = "datetimepicker" placeholder="dd/mm/yyyy HH:mm:ss" class="form-control"
                        id='datetimepicker' ng-required = "true"/>
                </div>
            </div>
        </div>

        <div class="container">
            <div class="form-group">
                <div class='col-sm-6'>
                    <button type="submit" id="btSummit" name="btSummit"
                        class="btn btn-primary" ng-click="agendar(agenda)">Agendar</button>
                </div>
            </div>
        </div>
    </form>
</div>

Estou utilizando o seguinte datepicker para bootstrap:

https://eonasdan.github.io/bootstrap-datetimepicker/

Obrigado

Da um console.log(data) dentro do success da sua chamada da API, pra ver se tá retornando a data no formato certinho

Enquanto você retorna o que o igor te pediu, gostaria de sugerir algumas diretivas em angular p/ vc.
https://angular-ui.github.io/bootstrap/
Neste link tem Datepicker (ui.bootstrap.datepicker) e outras.
https://htmlpreview.github.io/?https://github.com/angular-ui/ui-mask/master/demo/index.html
Neste tem mask.
https://github.com/angular-ui
Neste link agrupa todas as de cima, pessoal mantém bem estas diretivas.
É uma sugestão. :wink:

Então eu antes de postar eu fiz vários debugs antes de persistir para a API e os outros atributos do objeto são preenchidos apenas o dataAgendamento retorna undefined.

Vou dar uma olhada sim, também estou achando que este componente que estou utilizando… vlw

A questão do undefined creio que nao seja o componente. [quote=“cido18, post:1, topic:339490”]
laboratorioAPI.getLaboratorios().success(function(data){ $scope.laboratorios = data; }).error(function (data, status) {
[/quote]

Coloca ai $scope.laboratorios = data; console.log(data.dataAgendamento);
Ou posta o json do response.

O resultado do teste:

data.dataAgendamento:undefined

A ideia é ao preencher o formulário o objeto agenda seja preenchido, abaixo o resultado o json do objeto agenda:

Object {doador: Object, laboratorio: Object}
doador: Objectcep: "22.222-222"email: "teste@teste.com.br"endereco: "Rua teste 121, Vila Teste - BRTest"nome: "teste 123"rg: "11.111.111-1"proto:
laboratorio: ObjectbolsasDeSangue: Array[0]length: 0__proto__: Array[0]cep: "30.150-221"email: "contato@scs.gov"endereco: "Av. Francisco Sales, 1111 - Santa Efigênia, Belo Horizonte - MG"id: 2nome: "Santa Casa Saúde"proto: Object__proto__: Object

Mesmo preenchendo todo o form o atributo dataAgendamento simplesmente não é preenchido.

Pelo json que vc passou, não vi nenhum atributo dataAgendamento. Debug seu REST ele nao está retornando este atributo.

Fiz alguns testes removendo o datepicker, desta maneira o ng-model é preenchido.