簡體   English   中英

帶有ng-repeat的表中的最小和最大日期jquery datepicker

[英]min and max date jquery datepicker in table with ng-repeat

在我的頁面中,我具有添加,編輯和刪除操作的表。 表中的一列是“審核日期”。 日期的限制是日期值可以是填寫表單之前的10分鍾到前一天的任何時間。

當我在表外添加最小和最大日期限制時,它可以正常工作,但是當我在表中添加分鍾時,它不起作用

Date Outside Table (Works Perfectly)
<input type="text" datepicker="" ng-model="auditDate" id="AddAudit" /> 

$("#AddAudit").datepicker({
    maxDate: '-1',
    minDate: '-10M'
});


Date in Table  (does not work :-( )
<table ng-repeat="i in list">
    <tr>
        <td>
            <input type="text" datepicker="" ng-model="i.startDate" ng-change="dateChanged(i)" id="EditAuditDate_{{i.id}}" />
        </td>
    </tr>    
</table>

$scope.dateChanged = function(item) {
var inpAuditDate = "#EditAuditDate_" + item.id;
    $(inpAuditDate).datepicker({
        maxDate: '-1',
        minDate: '-10M'
    });
};

我創建了一個示例來顯示問題

任何幫助將不勝感激

您可以將最小/最大選項移動到指令代碼中,而不是從多個位置加載datepicker插件。 您最終要清理控制器,並在指令中保留選擇邏輯:

var app = angular.module('app', []);
app.controller('TestController', function ($scope, $window) {
    $scope.list = [{
            id: 1
        },
        {
            id: 2
        },
        {
            id: 3
        }];
});

app.directive('datepicker', function() {
  return {
    require: 'ngModel',
    link: function(scope, el, attr, ngModel) {
      $(el).datepicker({
        maxDate: '-1',
        minDate: '-10M',
        onSelect: function(dateText) {
          scope.$apply(function() {
            ngModel.$setViewValue(dateText);
          });
        }
      });
    }
  };
});

工作樣本

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM