更改输入时,角度日期输入(html)模型(值)不会获得更新

时间:2016-01-26 21:55:57

标签: angularjs date

H有2个角度日期输入。 dateFrom和DateTo。它们都是日期对象,但是当我将输入更改为另一天时,范围仍然显示“新日期”值...而不是更新的值?

JS

//set dates
    $scope.getFromDate = function() {
        $scope.dateFrom = new Date();
    }
    $scope.getToDate = function() {
        $scope.dateTo = new Date();
    }`

查看

        <div>
        <label class="item item-input" style="margin-left:0">
            <span class="input-label">van</span>
            <input type="date" ng-model="dateFrom" ng-init="getFromDate()">
        </label>
        <label class="item item-input" style="margin-left:0">
            <span class="input-label">tot</span>
            <input type="date" ng-model="dateTo" ng-init="getToDate()">
        </label>
        {{dateFrom}}

稍后在另一个函数中我发送dateFrom和dateTo变量如下

    $scope.getComp = function() {
    var dateTo = $scope.dateTo.getDate()+'-'+$scope.dateTo.getMonth()+1+'-'+$scope.dateTo.getFullYear();
    var dateFrom = $scope.dateFrom.getDate()+'-'+$scope.dateFrom.getMonth()+1+'-'+$scope.dateFrom.getFullYear();

但即使我已将视图上的输入更改为另一个日期.. dateFrom和dateTo仍显示“当前”日期?

1 个答案:

答案 0 :(得分:0)

您的输入中不需要ng-init

另外date输入需要yyyy-MM-dd格式的日期,因此最好使用$scope.dateFrom = $filter("date")(new Date(), 'yyyy-MM-dd');初始化

如此简单:

&#13;
&#13;
function Ctrl($scope, $filter) {
  $scope.dateFrom = $filter("date")(new Date(), 'yyyy-MM-dd');
  $scope.dateTo = $filter("date")(new Date(), 'yyyy-MM-dd');
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.9/angular.min.js"></script>
<div ng-app>
  <div ng-controller="Ctrl">
    <label class="item item-input" style="margin-left:0">
      <span class="input-label">van</span>
      <input type="date" ng-model="dateFrom">
    </label>
    <div>dateFrom : {{dateFrom}}</div>
    <Br/>
    <label class="item item-input" style="margin-left:0">
      <span class="input-label">tot</span>
      <input type="date" ng-model="dateTo">
    </label>
    <div>dateTo : {{dateTo}}</div>
  </div>
</div>
&#13;
&#13;
&#13;

相关问题