我想将日期更改为当前所选月份的第1天.
有没有办法监控月份按钮上的点击事件?
TIA
山姆
Datepicker的范围有一个你可以看的属性’activeDateId’.切换月份时会发生变化.
我认为最好的方法是在datepicker指令上创建一个’decorator’,以便为它添加功能.如果覆盖指令的’compile’函数,则可以访问其作用域.
你在module.config函数中执行此操作:
$provide.decorator('datepickerDirective',function($delegate) { var directive = $delegate[0]; /* Override compile */ var link = directive.link; directive.compile = function() { return function(scope,element,attrs,ctrl) { link.apply(this,arguments); scope.$watch('activeDateId',function() { console.log('switched'); }); } }; return $delegate; });
编辑
我遇到了与此类似的代码问题,如果您在同一天切换月份和2个月的第一个日期,则$watch将不会触发.你可以通过在Datepicker的控制器中观察属性’activeDate’的值来解决这个问题:
scope.$watch(function() { return ctrl.activeDate.getTime(); },function() { console.log('switched'); });