首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Angular UI Bootstrap DatePicker -关闭/模糊时获取选定日期

Angular UI Bootstrap DatePicker -关闭/模糊时获取选定日期
EN

Stack Overflow用户
提问于 2014-06-22 21:03:25
回答 3查看 32.9K关注 0票数 19

我有一个ng-repeat,每一行都有多个UI-Bootstrap日期选择器。当选择日期并且选择器关闭时,我正在尝试调用控制器中的函数。我尝试过使用UI-Event来捕获blur事件,但是当这个事件被调用时,模型还没有更新。我的问题是,当选择器关闭时,我如何获得所选的日期?我可以做像ui-event="{ blur : 'myBlurFunction( $event, this.text)' }这样的事情吗?或者有没有其他方法可以通过onClose事件来获取数据?

代码语言:javascript
复制
<li ng-repeat="....">
   <div ng-click="openEditStartCal($event, ticket)">
                <input ui-event="{ blur : 'blurredStartDate( $event, ticket, this.text)' }" 
                       type="text" 
                       starting-day="2" 
                       show-button-bar="false" 
                       show-weeks="false" 
                       class="form-control addTicketDateInput" 
                       datepicker-popup="dd MMM" 
                       ng-model="ticket.StartDate" 
                       is-open="startEditTicketOpened && currentTicketUpdating == ticket.TicketId" 
                       min-date="{{today()}}" 
                       max-date="'2015-06-22'" 
                       datepicker-options="dateOptions" 
                       date-disabled="disabled(date, mode)"  
                       ng-required="true" close-text="Close" />
   </div>

EN

回答 3

Stack Overflow用户

发布于 2014-06-23 05:44:09

我已经通过使用ng-change="myChangeFunction()"解决了这个问题。

票数 34
EN

Stack Overflow用户

发布于 2014-11-19 05:30:01

你可以在你的控制器中为你的date变量设置一个$watch。

代码语言:javascript
复制
$scope.$watch('ticket.StartDate',function(){
  var date = $scope.ticket.StartDate;
});
票数 3
EN

Stack Overflow用户

发布于 2014-08-22 02:07:23

我也在处理这个问题,onChange不会为我做这件事,所以我去了ui bootstrap .js并添加了一些东西。然后,我可以通过on-close属性在HTML中设置要调用的函数。

代码语言:javascript
复制
<input type="text" on-close="dateClosed()" ng-model="date" datepicker-popup="dd.MM.yyyy" is-open="dateOpened" ng-click="dateOpened=true"  />

然后您需要在以下位置更改ui-bootstrap.js

代码语言:javascript
复制
.directive('datepickerPopup' ... function(...) ... return { ...
scope: { ... , onClose: '&' }

有3个选项如何关闭选择器日期选择,单击别处或完成按钮。您可以很容易地找到它,这是isOpen设置为false的唯一位置

代码语言:javascript
复制
scope.isOpen = false;

然后我只在这3个地方调用一个函数,在那里我从属性调用函数

代码语言:javascript
复制
scope.onClosing = function () {
            if (angular.isDefined(attrs.onClose))
                scope.onClose();
        } 

如果你想要ui-bootstrap.js PM我,我只在tpls版本中做过。

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

https://stackoverflow.com/questions/24351501

复制
相关文章

相似问题

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