Converter string de data para date em AngularJS
Algumas vezes podemos querer utilizar um dado do back-end para um componente de date sem usar o ajax conforme abaixo.
<input type="date" name="data" class="form-control" ng-model="data" ng-init="data=<?php echo $data;?> >
Porém este código irá retornar o erro abaixo:
Expected `0000-00-00` to be a date
Isso acontece porque em um input do tipo date o angular não aceita que seja string e erpara que seja um date do javascript.
Para resolver este problema você deve criar uma função em seu controle para realizar a conversão.
$scope.converteData = function(string){
var array_data = string.split('-');
var data = new Date(array_data[0], array_data[1]-1, array_data[2]);
return data;
};
Agora chame a função em seu html da seguinte forma:
<input type="date" name="data" class="form-control" ng-model="data" ng-init="data=converteData('<?php echo $data;?>') >
Não esqueça das aspas simples em torno da tag do back-end