Angular JS datepicker不更新模型

时间:2016-07-22 08:50:22

标签: javascript angularjs

我正在尝试使用日期范围过滤表格,但无法让模型更新,因此它不知道我选择的日期。

这是datepicker弹出窗口的HTML:

<label>From:</label> 
 <p class="input-group" style="width:200px">
   <input type="text" class="form-control" uib-datepicker-popup = "{{format}}" ng-model="dt" is-open="status.opened"
                                           min-date="minDate" max-date="maxDate" datepicker-options="dateOptions" date-disabled="disabled(date, mode)"
                                           ng-required="true" close-text="Close"/>
     <span class="input-group-btn">
          <button type="button" class="btn btn-default" ng-click="open($event)"><i class="glyphicon glyphicon-calendar"></i></button>
     </span>
 </p>

我的控制器中的JS代码:

(function ()
{
'use strict';

angular.module('aml-tech-dashboard.successful-emails').controller('datepickerController', function ($scope) {
    $scope.dt = '';
    $scope.status = {
        opened: false
    };

    $scope.format = "yyyy-MM-dd"
    $scope.minDate = new Date();
    $scope.dateOptions = {
        //formatYear: 'yy',
        startingDay: 1
    };

    $scope.open = function ($event) {
        $scope.status.opened = true;

    };

    });

})();

表:

<tr ng-repeat = 'file in files | startFrom: dt'>

2 个答案:

答案 0 :(得分:1)

您的tr元素错误。它应该是这样的:

<tr ng-repeat="file in files | startFrom: dt"></tr>

uib-datepicker-popup指令中也有错误。它应该是这样的:

uib-datepicker-popup="{{format}}" 

这假设您已在模块中的其他位置定义了startFrom过滤器,因为它不是内置的角度过滤器。

答案 1 :(得分:0)

试试这个:

$scope.dt = new Date(); 

并确保在视图渲染时调用控制器。