angularjs – Angular – ui-bootstrap – datepicker – 有没有办法检测月份何时发生变化?

前端之家收集整理的这篇文章主要介绍了angularjs – Angular – ui-bootstrap – datepicker – 有没有办法检测月份何时发生变化?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想将日期更改为当前所选月份的第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个月的第一个日期,则$w​​atch将不会触发.你可以通过在Datepicker的控制器中观察属性’activeDate’的值来解决这个问题:

scope.$watch(function() {
              return ctrl.activeDate.getTime();
            },function() {
              console.log('switched');
            });

猜你在找的Angularjs相关文章