javascript - Angular 绑定(bind)字符串日期到输入类型日期

标签 javascript angularjs json date

我正在使用 Angular 1.6,我想直接将字符串绑定(bind)到日期类型的输入,而不是必须将日期转换为日期,然后再绑定(bind)到输入。原因是我从服务器获取 JSON(以及其他数据)并且我不想仅为日期创建中间变量,我想直接使用 JSON,因此我可以按原样 POST 回我的 JSON当输入字段中有修改并且不需要使用 ng-change 和转换日期并将其放入我的 JSON 等时...我有 plunkered我的问题。

这是 html :

<body ng-app="plunker" ng-controller="MainCtrl">
  <form name="myForm">
    <label for="exampleInput">Date input</label>
    <input type="date" id="exampleInput" name="input" ng-model="date" placeholder="yyyy-MM-dd"/>
  </form>
</body>

这是 javascript :

var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
  $scope.dateString = '2017-01-31';
  $scope.date = new Date(2017, 11, 31);
});

如果我将输入绑定(bind)到变量 $scope.date 就没问题,但如果我将它绑定(bind)到变量 $scope.dateString 就不行了。

最佳答案

您可以像这样使用输入的 value 属性来做到这一点:

angular
  .module('plunker', [])
  .controller('MainCtrl', function($scope) {
    $scope.dateString = '2017-01-31';
    $scope.date = new Date(2017, 11, 31);
  })
;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<section ng-app="plunker" ng-controller="MainCtrl">
  
  <form name="myForm">
    <label for="exampleInput">Date input</label>
    
    <input 
      type="date" value="{{dateString | date : 'yyyy-MM-dd'}}" 
      ng-model="dateString" placeholder="yyyy-MM-dd"
    />
  </form>
  
</section>

关于javascript - Angular 绑定(bind)字符串日期到输入类型日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45501796/

相关文章:

javascript - 如何将 PHP 放入 Javascript 中?

angularjs - AngularJS 中如何进行分页?

java - 在 Visual Studio Code 中以 json 格式编写 Java 代码片段

javascript - 修改jstree中创建的节点的DOM

javascript - asp.net mvc4 Entity Framework 中的评级

angularjs - 人行横道的替代方案

java - 在反序列化 Json 时,如何在 jackson 中确定 POJO 的 setter 方法调用的顺序?

json - 从 json.Decoder 获取键和值

javascript - 预加载大型 JSON 文件

javascript - 如何在 AngularJS 中将查询字符串附加到 url 中?