Angular Material 日期选择器在 1.1.1 中损坏了吗?
Angular Material datepicker broken in 1.1.1?
我是不是遗漏了什么或者 Angular Material 的日期选择器在版本 1.1.1 中损坏了?
示例:
<!DOCTYPE html>
<html ng-app="app">
<head>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/angular-material/1.1.1/angular-material.css">
<title>foo</title>
</head>
<body>
<main ng-controller="FooController">
<h1>TEST</h1>
<div><md-datepicker ng-model="myDate" md-placeholder="Choose NOW!"></md-datepicker></div>
<div ng-bind="myDate"></div>
</main>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular-aria.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular-animate.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular-material/1.1.1/angular-material.js"></script>
<script type="text/javascript">
(function () {
"use strict";
var app = angular.module('app', ['ngAria', 'ngAnimate', 'ngMaterial']);
app.controller('FooController', ['$scope', function ($scope) {
$scope.myDate = null;
}]);
})();
</script>
</body>
</html>
您可以将其保存到 HTML 文件并在浏览器中打开它,或者这里有一个现场演示:http://codepen.io/anon/pen/JbgVeq
如果我尝试打开日期选择器,它只会打开一个或多或少完全空白的对话框。但是如果我将 Material 版本更改为 1.1.0(在 JS 和 CSS 中),它工作正常。我在这里遗漏了什么吗?
这是由于 angular 1.6.
中的更改所致
preAssignBindingsEnabled to false by default
https://github.com/angular/angular.js/blob/master/CHANGELOG.md
您使用变更日志中提供的解决方法:
angular.module('myApp', [])
.config(function($compileProvider) {
$compileProvider.preAssignBindingsEnabled(true);
})
直到 angular material 解决了问题。
我是不是遗漏了什么或者 Angular Material 的日期选择器在版本 1.1.1 中损坏了?
示例:
<!DOCTYPE html>
<html ng-app="app">
<head>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/angular-material/1.1.1/angular-material.css">
<title>foo</title>
</head>
<body>
<main ng-controller="FooController">
<h1>TEST</h1>
<div><md-datepicker ng-model="myDate" md-placeholder="Choose NOW!"></md-datepicker></div>
<div ng-bind="myDate"></div>
</main>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular-aria.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular-animate.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular-material/1.1.1/angular-material.js"></script>
<script type="text/javascript">
(function () {
"use strict";
var app = angular.module('app', ['ngAria', 'ngAnimate', 'ngMaterial']);
app.controller('FooController', ['$scope', function ($scope) {
$scope.myDate = null;
}]);
})();
</script>
</body>
</html>
您可以将其保存到 HTML 文件并在浏览器中打开它,或者这里有一个现场演示:http://codepen.io/anon/pen/JbgVeq
如果我尝试打开日期选择器,它只会打开一个或多或少完全空白的对话框。但是如果我将 Material 版本更改为 1.1.0(在 JS 和 CSS 中),它工作正常。我在这里遗漏了什么吗?
这是由于 angular 1.6.
中的更改所致preAssignBindingsEnabled to false by default
https://github.com/angular/angular.js/blob/master/CHANGELOG.md
您使用变更日志中提供的解决方法:
angular.module('myApp', [])
.config(function($compileProvider) {
$compileProvider.preAssignBindingsEnabled(true);
})
直到 angular material 解决了问题。