加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – Angular $http POST更改日期格式

发布时间:2020-12-17 17:15:16 所属栏目:安全 来源:网络整理
导读:以下情况: 我有一个带有输入[日期]字段的表单.我通过以下代码转换值: $scope.entity.date = $filter('date')($scope.entity.date,'yyyy-MM-dd'); 这正确地将日期格式化为例如2015年10月27日 当我使用$http.post提交实体时,angular似乎将此识别为日期并将其
以下情况:

我有一个带有输入[日期]字段的表单.我通过以下代码转换值:

$scope.entity.date = $filter('date')($scope.entity.date,'yyyy-MM-dd');

这正确地将日期格式化为例如2015年10月27日

当我使用$http.post提交实体时,angular似乎将此识别为日期并将其重新格式化为2015-09-30T23:00:00.000Z.我在德国,我们有GMT 1.所以角度将日期转换为GMT.
有没有办法禁用这种行为?

编辑:

HTML的代码:

<form ng-submit="submit()">
  <input type="date" ng-model="entity.date" />
</form>

JS-代码:

$scope.submit = function() {
  $scope.entity.date = $filter('date')($scope.entity.date,'yyyy-MM-dd');

  // when debugging this is the point where $scope.entity.date is 2015-10-27
  // so it is the format and date I expect

  $http({
    data: $scope.entity,method: POST,url: '/resource'
  })
    .success(function(data) {
      // do some stuff
    });

  // when looking into network traffic the request was sent with
  // 2015-09-30T23:00:00.000Z as value for $scope.entity.date
};

解决方法

您正在更改帖子上的模型值.由于您的输入类型是日期,因此它会被更改回来.这不是一个好主意,因为实际的表单元素只会在您发布后更改值.

任何时候你需要在保存它之前操纵你的对象是一个很好的想法来创建一个对象的副本.这样它的行为就像你期望的那样.

var entity = angular.copy($scope.entity);

然后发布本地副本,你应该是好的.

$http({
    data: entity,url: '/resource'
  })

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读