预计xxx是服务后的日期

时间:2014-10-29 15:19:58

标签: javascript json angularjs date

我正在使用角度$ http的REST服务,然后我将json响应存储在我的范围内。 在页面上,我想将数据绑定到表单。

由于从REST服务收到的Date属性在JSON中是String格式,我的输入日期文本不会绑定JSON中的字段。 我在控制台“预期'1981-04-01'中得到错误是一个约会。”

有没有办法让角度将此字段视为日期?

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

JSON本身并不考虑日期(我认为两者都没有),并且大多数后端技术不会将日期(以它们处理它们的任何格式)转换为除字符串之外的其他格式。这适用于PHP,Java和Python。

所以你从后端得到null,字符串,数字,布尔值和嵌套结构(对象,数组)。

在前端你有Angular和$ http。你也没有运气:你只收到字符串和这类数据而没有转换。即使ngResource也缺乏这种能力。您必须做的是,在成功数据处理程序中:

$http(...).success(function(data, more, params, here){
    $scope.data = data; //assuming you're retrieving the whole object. this line is up to you and your logic.
    $scope.data.mydatefield = new Date($scope.data.mydatefield);
});

使用通常格式的MySQL日期作为参数接受并按预期行事。但是,再次,根据你提供的信息,你运气不好,必须手动完成(好吧......这并不难 - 就像我向你展示的那样......也许暂时将数据存储在局部变量中为了不使$ scope闪烁)。