以编程方式在 Angular Material 中打开 md-datepicker
Open md-datepicker in Angular Material Programmatically
我正在尝试在单击单个元素时从控制器打开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。话虽如此,这可能是一个尽可能温和的黑客。
如果您只需要对话框本身而不是日期字段,这是另一种黑客方法。
将日期选取器添加到指令模板,但将其隐藏:
<md-datepicker id="datepicker"
ng-model="selectedDate"
ng-change="dateChanged()"
style="position: absolute; visibility: hidden;">
</md-datepicker>
通过以编程方式单击按钮将其打开。选择日期后,dateChanged
函数将触发,您可以执行需要对日期执行的操作。
(function () {
'use strict';
angular.module("app").directive("someDirective", someDirective);
someDirective.$inject = ["$timeout"];
function someDirective($timeout) {
return {
templateUrl: 'app/directives/someDirective.html',
restrict: 'EA',
scope: {},
link: function(scope, element) {
scope.openDatePicker = function () {
$timeout(function() {
element.find("#datepicker button")[0].click();
}, 0);
};
scope.dateChanged = function () {
// Do something with scope.selectedDate
};
}
};
}
})();
相关文章:
- Bootstrap 3 Datepicker v4:dp.show和dp.change事件在Datepicker内联时不
- 为什么要对define.md和module.exports进行条件检查,以及条件何时通过
- jQuery Datepicker可以在Safari中工作,但不能在FF或Chrome中工作
- 如何为Angular Material's”;md菜单”;
- 有没有添加一个ng点击到md背景
- 如何获得Bootstrap Datepicker的年和月,因为它在变化
- datepicker引导程序再次初始化
- 如何在jQuery Mobile 1.4 Datepicker中创建事件
- jQuery Datepicker从日期开始设置默认值
- 如何在Angular Material中的md背景后面接收ng点击事件
- DatePicker小部件使用情况
- Datepicker Javascript明天无法获取's日期
- 在Datepicker中将日期格式更改为yyyy-mm-dd
- Undefined不是函数ImpressPages DatePicker
- 角度材料 md-datepicker 和 md-select 验证
- 以编程方式在 Angular Material 中打开 md-datepicker
- Angular Material md-datepicker在点击时会抛出错误
- 用momentjs改变Angular Material中md-datepicker的格式
- 在显示md-datepicker时将字符串转换为日期
- md- datePicker -日期实例总是错误