2016-12-12 4 views
0

日付ピッカーを角度で開くことができません。目標は日付範囲を取得することです。したがって、dateStartを変更すると、2番目のカレンダーは自動的に開きますが、2番目のカレンダーは自動的に開きません。日付ピッカーを手動で開く角度

何が欠けていますか?

FIXED

オープン・オンフォーカス指令

の作業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> 

http://jsfiddle.net/hx5g5g95/

+0

あなたのフィドルは大丈夫です。私は何の問題も見ません。サファリとクロムでテストされた – digit

+0

2番目のカレンダーは、最初のカレンダーに日付を変更し、クロム55、サファリ、ファイアフォックスでテストしたときに開かれません – TLR

答えて

0

あなたのコードに問題がいくつかあります:あなたのタイムアウトで使用

1 - あなたのIDセレクタは、あなたの要素で定義されていません。ですから、仕事をしたい、このための要素にID =「dateEnd」を追加する必要があります。

var myEl = angular.element(document.querySelector('#dateEnd')); 

2 - あなたが同じを使用しているときに、trueにdateEndOpenedという変数を設定する2つ目は開くことを期待していますng-focusの変数ng-focusは変数ではなくfunctionであるため、間違っています。

はこれに対処する方法についての詳細は、このissueを参照してください、しかし、ショートバージョンは、2番目の日付ピッカーに

ng-focus="open()" 

を追加することです。

+0

コピー/ペーストが間違っているようですopen()のように思われます – TLR

+0

どのようにgithubの問題ページでも指示を使用して達成する方法は、あなたが好きな場合は、それに従うことができます問題は閉鎖されたので動作するはずです – Yaser

+0

まだ動作していない、Chrome 55の可能性のある問題? – TLR

関連する問題