2014-08-05 2 views
0

У меня есть угловое приложение, где я получаю данные от службы.Угловая загрузочная загрузка поля даты в html

Мой контроллер app.js выглядит следующим образом:

var app = angular.module('myapp', ['ui.bootstrap', 'jsonService']); 
    app.controller('mycontroller', function(MyService, $scope, $modal, $log, $http) { 
     $scope.profileid=3619; 

     MyService.getItems($scope.profileid,function(data){ 
      $scope.profiledata = data; 
     }); 
    }); 

объект JSON я получаю в данных выглядит следующим образом:

[ 
    { 
     "profile_id": 3619, 
     "student_id": "554940", 
     "first_name": "Samuel", 
     "last_name": "Haynes", 
     "date_of_birth": "2002-03-08T06:00:00Z" 
    } 
] 

Здесь date_of_birth является DateTime поле. Когда я пытаюсь отобразить эти значения в HTML следующим образом:

<label for="lastName">Student Last Name</label> 
<input type="text" class="form-control" id="lastName" ng-model="profiledata[0].last_name" placeholder="Last Name" /> 

<label for="dob">Date of Birth</label> 
<input type="date" class="form-control" id="dob" ng-model="profiledata[0].date_of_birth" /> 

Здесь, фамилия отображает штраф в текстовом поле. Но дата не работает. Как отображать значения даты?

+1

См. Здесь: https: //docs.angularjs.org/api/ng/input/input%5Bdate%5D Вам нужно будет отключить время. –

+0

Я использовал datetimelocal вместо даты. Тем не менее его не видно. Подумайте, что-то не так в json-параметрах? – Abhishek

+0

После перечитывания документа, который я связал, он говорит, что ДОЛЖЕН быть объектом даты. Создайте объект даты, передавая строку даты конструктору, а затем ng-model. –

ответ

1

Для ввода даты ввода значения необходимо сначала преобразовать объект даты javascript. Поэтому в этом случае вы должны добавить строку $scope.profiledata[0].date_of_birth = new Date($scope.profiledata[0].date_of_birth); сразу после строки $scope.profiledata = data;.

+0

попробовал! не удачи, хотя :(все еще показывал мне местозаполнитель. Когда я разместил отладчик, дата была правильно создана в $ scope.profiledata [0] .date_of_birth. Но по какой-то причине она не показывалась на странице html – Abhishek

+0

Сделал еще несколько поисков и фактически наткнулся на эту аналогичную публикацию SO: http://stackoverflow.com/questions/18061757/angular-js-and-html5-date-input-value-how-to-get-firefox-to-show -a-readable-d – bbone

+0

спасибо, что решил – Abhishek

Смежные вопросы