Как Angular Material datepicker оставить/оставить открытым

Я пробовал с md-blur md-focus, все терпят неудачу. Я использую Angular Material 1.1.3, и мне нужно, чтобы средство выбора даты оставалось открытым после выбора даты. Итак, как сохранить его открытым, после этого действия. Кто-нибудь может помочь?


person Lukas    schedule 29.03.2017    source источник
comment
Не могли бы вы добавить несколько кодов или plnkr/fiddle?   -  person lin    schedule 29.03.2017
comment
codepen.io/anon/pen/RpezmL?editors=101 здесь   -  person Lukas    schedule 29.03.2017
comment
Попробуйте md-is-open, он откроет календарь средства выбора даты по запросу.   -  person Kalyan Singh Rathore    schedule 29.03.2017
comment
@KalyanSinghRathore ты читал, что я написал? :)   -  person Lukas    schedule 29.03.2017
comment
Пожалуйста, проверьте мой ответ, он работает для вас?   -  person lin    schedule 25.04.2017
comment
@lin в настоящее время я не участвую в этом проекте, я скоро проверю и дам вам знать немедленно   -  person Lukas    schedule 26.04.2017
comment
@Лукас спасибо. Это было бы прекрасно.   -  person lin    schedule 26.04.2017


Ответы (1)


Из-за документации md-datepicker вы не можете этого добиться. ngMaterials хорош, но имеет много ограничений. Вы можете «подделать» это, используя md-calendar, как в этой запускаемой демо-программе.

Вид

<div ng-app="MyApp" ng-controller="MyController" layout-padding>
    {{ date }}<br /> 
    <input type="date" ng-model="date" ng-click="openDatePicker()" ng-show="!datePickerOpened">
    <md-calendar class="fixed-calendar" ng-show="datePickerOpened" ng-model="date"></md-calendar>
</div>

CSS

.fixed-calendar {
  width: 340px;
  height: 340px;
  display: block;
}

.fixed-calendar .md-calendar-scroll-mask {
  width: 340px !important;
}

.fixed-calendar .md-virtual-repeat-scroller {
  width: 340px !important;
  height: 308px;
}

Заявление

angular
    .module('MyApp', ['ngMaterial'])
    .controller('MyController', function($scope, $timeout) {

    //Init
    $scope.datePickerOpened = false;
    $scope.date = new Date();

    //show datepicker action
    $scope.openDatePicker = function () {

        //show datepicker
        $scope.datePickerOpened = true

        //avoid date set to 1933 by async reinit date after ng-show rendering
        $timeout(function () {
             $scope.date = new Date();
        });
    }
}); 
person lin    schedule 29.03.2017