我无法以角度打开日期选择器。目标是获取日期范围,因此当我更改dateStart时,第二个日历应该自动打开,但它不会。
我错过了什么?
固定
似乎是开放式焦点指令
的问题工作jsfiddle: http://jsfiddle.net/9dfLawtz/
var app = angular.module('myApp', ['ngMaterial']);
app.controller('MyCtrl', ['$scope','$timeout', function MyCtrl ($scope,$timeout) {
$scope.dateFormat = '';
$scope.dateEnd = '';
$scope.dateStart = '';
$scope.changeDateStart = function(){
var myEl = angular.element( document.querySelector( '#dateEnd' ) );
myEl.focus();
$scope.test = true;
myEl.parent().find("input").focus();
}
}]);
HTML:
<div ng-app="myApp">
<h2>Focus on each input and press 'enter' to see its name</h2>
<div ng-controller="MyCtrl">
<button ng-click="openDatePicker()">
Click
</button>
<md-datepicker id="dateStart"
ng-model="dateStart" ng-change="changeDateStart()">
</md-datepicker>
<md-datepicker id="dateEnd"
ng-model="dateEnd" md-placeholder="dateEnd" md-open-on-focus>
</md-datepicker>
<p>input : {{ dateFormat }}</p>
</div>
答案 0 :(得分:0)
您的代码存在一些问题:
1-您的超时中使用的您的ID选择器未在您的元素中定义。所以你需要在元素中添加id =“dateEnd”,以便工作:
var myEl = angular.element( document.querySelector( '#dateEnd' ) );
2-您正在将名为dateEndOpened
的变量设置为true并期望第二个变量打开,而您在ng-focus
中使用了相同的变量,这是错误的,因为ng-focus
期望{ {1}}而不是变量。
有关如何处理此问题的详细信息,请参阅此issue,但短版本是要添加
function
到你的第二个日期选择器。