我这一天过得怎么样..。不管怎么说,我一直在帮助一些同事做AngularJS项目,但这一切都是错误的,无论如何……我使用的是AngularJS UI引导程序0.11.2版本和AngularJS版本1.3。不过,到目前为止,我希望订出由今日起计最少2个月、由今日起计6个月,以及由今日起计2个月的最初日期。到目前为止,这就是我所拥有的:
视图
<div data-datepicker
data-ng-model="dt"
data-min-date="minDate"
data-max-date="maxDate"
data-max-mode="day"
data-show-weeks="false"
data-starting-day="1"
data-year-range="2"
class="custom-date-picker"></div>在我的控制器里..。
var today = new Date(),
twoMonth = today.setMonth(today.getMonth() + 2),
sixMonth = today.setMonth(today.getMonth() + 6);
$scope.today = function() {
$scope.minDate = twoMonth;
$scope.maxDate = sixMonth;
};
$scope.today();不过,我注意到minDate是正确的,maxDate实际上是8个月以后,当我在指令中添加以下内容来设置初始日期时(注意,data-init-date="minDate")
<div data-datepicker
data-ng-model="dt"
data-init-date="minDate"
data-min-date="minDate"
data-max-date="maxDate"
data-max-mode="day"
data-show-weeks="false"
data-starting-day="1"
data-year-range="2"
class="custom-date-picker"></div>我得到了以下错误!
TypeError: undefined is not a function
at e._refreshView (js/vendor/angular/ng-ui-bootstrap-tpls-0.11.2.min.js:8:16705)
at refreshView (js/vendor/angular/ng-ui-bootstrap-tpls-0.11.2.min.js:8:13968)
at link (js/vendor/angular/ng-ui-bootstrap-tpls-0.11.2.min.js:8:17848)
at B (js/vendor/angular/angular-1.3.0-beta.18.min.js:55:369)
at js/vendor/angular/angular-1.3.0-beta.18.min.js:62:378
at g (js/vendor/angular/angular-1.3.0-beta.18.min.js:48:105)
at js/vendor/angular/angular-1.3.0-beta.18.min.js:47:233
at js/vendor/angular/angular-1.3.0-beta.18.min.js:49:54
at Object.r [as transclude] (js/vendor/angular/angular-1.3.0-beta.18.min.js:52:497)
at js/vendor/angular/angular-1.3.0-beta.18.min.js:215:316 <table role="grid" aria-labelledby="{{uniqueId}}-title" aria-activedescendant="{{activeDateId}}" ng-switch-when="day" tabindex="0">有人知道我哪里出错了吗?
发布于 2014-10-21 15:09:03
需要注意的是,您的约会对象在这里发生了变异:
var today = new Date(),
twoMonth = today.setMonth(today.getMonth() + 2),
sixMonth = today.setMonth(today.getMonth() + 6);每个setMonth调整原始日期。因此,八个月期。
后一个问题是由twoMonth和sixMonth是数字这一事实引起的。我认为您的指令期望日期,所以用new Date(...)包装它们。
解决方案
我认为像这样的事情应该有效:
var twoMonth = offsetMonths(2);
var sixMonth = offsetMonths(6);
function offsetMonths(offset) {
var ret = new Date();
ret.setMonth(ret.getMonth() + offset);
return new Date(ret);
}当然,您可以通过使用类似于moment.js的东西来简化事情。
https://stackoverflow.com/questions/26489982
复制相似问题