Javascript 打开md日历时滚动到当前日期

Javascript 打开md日历时滚动到当前日期,javascript,angularjs,angular-material,Javascript,Angularjs,Angular Material,目前正在构建一个应用程序,其中我们需要一个md日历组件。我们希望自定义按钮样式和内容,因此不使用普通的md日期选择器。问题是,当md日历打开时,滚动位置为1933。当前日期设置正确 如何将滚动位置设置为当前日期 md datepicker使用md calendar作为子组件,其中日历滚动到当前日期,因此不应该很难实现 当前的解决方法是将md min date属性设置为接近当前日期的日期,但这不是一个好的解决方案,因为它禁止导航到更早的日期 代码笔示例: Wll首先,我尝试升级到最新的angula

目前正在构建一个应用程序,其中我们需要一个md日历组件。我们希望自定义按钮样式和内容,因此不使用普通的md日期选择器。问题是,当md日历打开时,滚动位置为1933。当前日期设置正确

如何将滚动位置设置为当前日期

md datepicker使用md calendar作为子组件,其中日历滚动到当前日期,因此不应该很难实现

当前的解决方法是将md min date属性设置为接近当前日期的日期,但这不是一个好的解决方案,因为它禁止导航到更早的日期

代码笔示例:

Wll首先,我尝试升级到最新的
angular material v1.1.10
,这是我在尝试回答此问题时得到的解决方案,但这样做无助于解决您的问题,尽管您可以升级到最新版本,如果您想消除一些bug的话

无论如何,问题是由于未正确初始化
md datepicker
造成的,原因可能有很多,我的解决方案是使用可靠的
ng if
重新初始化
md日历
,这样做可以解决此问题

注意:使用
ng if
将创建一个隔离的作用域,因此可能存在
$scope
变量未正确更新的情况,在这些情况下,您需要使用
$parent
属性来解决此问题,请参阅。
angular.module('myApp',['ngMaterial'])。controller('AppCtrl',function($scope){
$scope.myDate=新日期();
$scope.minDate=新日期(
$scope.myDate.getFullYear(),
$scope.myDate.getMonth()-2,
$scope.myDate.getDate());
});
/*
版权所有2016谷歌公司。保留所有权利。
此源代码的使用受麻省理工学院风格的许可证管理,该许可证可在以下位置的许可证文件中找到:https://material.angularjs.org/license.
*/

选择日期
选择日期(使用最小日期)