首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角JS用户界面引导数据报警器:最大日期和init日期问题

角JS用户界面引导数据报警器:最大日期和init日期问题
EN

Stack Overflow用户
提问于 2014-10-21 15:05:43
回答 1查看 6.8K关注 0票数 1

我这一天过得怎么样..。不管怎么说,我一直在帮助一些同事做AngularJS项目,但这一切都是错误的,无论如何……我使用的是AngularJS UI引导程序0.11.2版本和AngularJS版本1.3。不过,到目前为止,我希望订出由今日起计最少2个月、由今日起计6个月,以及由今日起计2个月的最初日期。到目前为止,这就是我所拥有的:

视图

代码语言:javascript
复制
<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>

在我的控制器里..。

代码语言:javascript
复制
 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")

代码语言:javascript
复制
<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>

我得到了以下错误!

代码语言:javascript
复制
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">

有人知道我哪里出错了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-21 15:09:03

需要注意的是,您的约会对象在这里发生了变异:

代码语言:javascript
复制
var today = new Date(),
    twoMonth = today.setMonth(today.getMonth() + 2),
    sixMonth = today.setMonth(today.getMonth() + 6);

每个setMonth调整原始日期。因此,八个月期。

后一个问题是由twoMonthsixMonth是数字这一事实引起的。我认为您的指令期望日期,所以用new Date(...)包装它们。

解决方案

我认为像这样的事情应该有效:

代码语言:javascript
复制
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的东西来简化事情。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26489982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档