我正在构建一个简单的表单。 这个表格得到一个生日场。 我可以选择一个日期并坚持下去。 但是当我重新加载页面时,我有一个错误
Error: [ngModel:datefmt] Expected `2015-03-06T23:00:00.000Z` to be a date
我知道如何解决它。我需要将user.date_birthday转换为Date。 所以我尝试了这个。
'use strict';
angular.module('TheNameApp')
.controller('SettingsCtrl', function ($scope, User, Auth) {
$scope.user = User.get();
$scope.errors = {};
console.log($scope.user); // display the resource
console.log($scope.user.date_birthday); //undefined
$scope.changeInformations = function(form) {
$scope.infos_submitted = true;
if(form.$valid) {
Auth.changeInformations({
gender: $scope.user.gender,
city: $scope.user.city,
country: $scope.user.country,
talent: $scope.user.talent,
date_birthday: $scope.user.date_birthday,
user_name: $scope.user.user_name,
email: $scope.user.email })
.then( function() {
$scope.infos_message = 'Done.'
})
.catch( function(err) {
err = err.data;
$scope.errors = {};
// Update validity of form fields that match the mongoose errors
angular.forEach(err.errors, function(error, field) {
form[field].$setValidity('mongoose', false);
$scope.errors[field] = error.message;
});
});
}
};
.html
<div class="form-group">
<label>Birthday</label>
<input type="date" name="date_birthday" class="form-control" ng-model="user.date_birthday"/>
</div>
user.date_birthday未定义,但我可以在$ scope.user中看到它 我的下一步需要这个
$scope.user.date_birthday = new Date($scope.user.date_birthday);
为什么我看不到自己的属性?我该如何解决这个问题?
答案 0 :(得分:2)
假设您的User
是资源,.get()
是异步调用。使用回调:
User.get(function(user) {
user.date_birthday = new Date(user.date_birthday);
$scope.user = user;
});