在Chrome中查看時,角度材料中的md-datepicker元素在默認日期的錯誤日曆位置(例如未來一兩個月)打開。同樣,如果選擇年份視圖,它會從默認日期開始一兩年。Chrome中的角度材料日期選擇器開放位置錯誤
這篇文章(Angular material datepicker position is wrong except on Chrome)奇怪地問這個問題的反面,說它可以在Chrome中使用,但在其他瀏覽器中被破壞。對這個問題的迴應表明它已經被FireFox,IE和Safari修復。
在Chrome桌面和Android上進行測試的結果相同(中斷)。
下面是兩個獨立的Codepen存儲庫,顯示問題。
http://codepen.io/anon/pen/pjGPGZ?editors=101
http://codepen.io/DionOrr/pen/pNmQzb
代碼從第二環節是:
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/angular_material/1.1.0/angular-material.min.css">
<body ng-app="myApp">
<div ng-controller="myController">
<p>Inside md-input-container
<br>
<md-input-container>
<label>Test datepicker</label>
<md-datepicker ng-model="testdate1" md-placeholder="Enter date"></md-datepicker>
</md-input-container>
<br>
<md-input-container>
<label>Test datepicker</label>
<md-datepicker ng-model="testdate2" md-placeholder="Enter date"></md-datepicker>
</md-input-container>
<br>
<md-input-container>
<label>Test datepicker</label>
<md-datepicker ng-model="testdate3" md-placeholder="Enter date"></md-datepicker>
</md-input-container>
<br>
<md-input-container>
<label>Test datepicker</label>
<md-datepicker ng-model="testdate4" md-placeholder="Enter date"></md-datepicker>
</md-input-container>
<br>
<md-input-container>
<label>Test datepicker</label>
<md-datepicker ng-model="testdate5" md-placeholder="Enter date"></md-datepicker>
</md-input-container>
<br>
<md-input-container>
<label>Test datepicker</label>
<md-datepicker ng-model="testdate6" md-placeholder="Enter date"></md-datepicker>
</md-input-container>
<br>
<md-input-container>
<label>Test datepicker</label>
<md-datepicker ng-model="testdate7" md-placeholder="Enter date"></md-datepicker>
</md-input-container>
<br>
<md-input-container>
<label>Test datepicker</label>
<md-datepicker ng-model="testdate8" md-placeholder="Enter date"></md-datepicker>
</md-input-container>
</p>
<p>Not inside md-input-container
<br>
<md-datepicker ng-model="testdate9" md-placeholder="Enter date"></md-datepicker>
<br>
<md-datepicker ng-model="testdate10" md-placeholder="Enter date"></md-datepicker>
<br>
<md-datepicker ng-model="testdate11" md-placeholder="Enter date"></md-datepicker>
<br>
<md-datepicker ng-model="testdate12" md-placeholder="Enter date"></md-datepicker>
<br>
<md-datepicker ng-model="testdate13" md-placeholder="Enter date"></md-datepicker>
<br>
<md-datepicker ng-model="testdate14" md-placeholder="Enter date"></md-datepicker>
<br>
<md-datepicker ng-model="testdate15" md-placeholder="Enter date"></md-datepicker>
<br>
<md-datepicker ng-model="testdate16" md-placeholder="Enter date"></md-datepicker>
</p>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.0/angular.min.js" type="text/javascript"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.0/angular-animate.min.js" type="text/javascript"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.0/angular-aria.min.js" type="text/javascript"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.0/angular-messages.min.js" type="text/javascript"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angular_material/1.1.0/angular-material.min.js" type="text/javascript"></script>
<script type="text/javascript">
var app = angular.module('myApp', ['ngMaterial', 'ngMessages']);
app.controller('myController', function($scope) {
$scope.testdate1 = new Date();
$scope.testdate2 = new Date();
$scope.testdate3 = new Date();
$scope.testdate4 = new Date();
$scope.testdate5 = new Date();
$scope.testdate6 = new Date();
$scope.testdate7 = new Date();
$scope.testdate8 = new Date();
$scope.testdate9 = new Date();
$scope.testdate10 = new Date();
$scope.testdate11 = new Date();
$scope.testdate12 = new Date();
$scope.testdate13 = new Date();
$scope.testdate14 = new Date();
$scope.testdate15 = new Date();
$scope.testdate16 = new Date();
});
</script>
請打開它們在Chrome(無論是臺式機或移動),尤其是試圖降低了網頁的datepickers。
這個問題(github.com/angular/material/issues/5055)暗示與Angular Material datepicker有類似的問題,並將它歸入錯誤地放置在md-input-container中。但是,上面的第二個codepen鏈接明確地表明,不管datepicker是否在md-input-container中,問題都會重複出現,從而排除了這種情況下的答案。
有沒有簡單的解決方法?
它在正確的位置打開 –