单击单个元素时,我试图从控制器中打开MD日期选择器,但它不起作用,我使用的是最新版本的Angular Material> 1.0.4

我试图$ inject $ mdDatePicker,但它说找不到模块。

MyController.$inject = [ '$mdDatePicker' ];


我也深入研究了最后的文档,但找不到与此相关的任何内容

最佳答案

我设法通过扩展指令破解了这个添加的功能:

.directive('mdDatepickerAutoopen', function ($timeout) {
  return {
    restrict: 'A',
    require: 'mdDatepicker',
    link: function (scope, element, attributes, DatePickerCtrl) {
      element.find('input').on('click', function (e) {
        $timeout(DatePickerCtrl.openCalendarPane.bind(DatePickerCtrl, e));
      });
    }
  };
})




<md-datepicker md-datepicker-autoopen>


对于将来的兼容性,我会格外小心,因为它取决于内部实现细节而不是任何公共API。话虽如此,这可能是一个尽可能平和的技巧。

08-04 16:06