日期时间选择器无法在角度ui模式下工作

时间:2017-10-16 12:13:55

标签: javascript angularjs datepicker

我有一个使用角度ui模态打开的模态

$scope.pdcPayment = function () {


    var modalInstance = $modal.open({
        templateUrl: 'pdc.html',
        windowClass: 'app-modal-window',
        backdrop: true,
        keyboard: false,
        modalFade: true,
        scope: $scope,
        controller: function ($scope, $modalInstance, $http) {
            $scope.submitMyForm = function (form) {
                if (form.bookingForm.$valid) {
                    $modalInstance.dismiss('cancel');

                }
                else {

                }
            };

            $scope.cancel = function () {
                $modalInstance.dismiss('cancel');
            };
        }
    });
};

这是我的HTML:

<div class="col-xs-4 form-group">
                        <label class="col-xs-12" for="pdcDatePicker">Date on Cheque: </label>
                        <div class="col-xs-12">
                            <input type="text" id="pdcDatePicker" name="pdcDatePicker" class="form-control"/>
                        </div>

另请注意我用来调用日期时间选择器的方法:

<script>


    jQuery('#pdcDatePicker').datetimepicker();

由于某些原因,当我点击文本框

时,日期时间选择器没有被甩掉

1 个答案:

答案 0 :(得分:1)

以下是我在ui-modal上使用datepicker的方法,一旦你拥有了正确的日期选择器库,它就会非常容易。

  • 我使用了这个原生的angular-js日期选择器library
  • 按照this page中列出的步骤设置此库以供使用, 设置完成后,以下代码示例将帮助您在ui-modal上显示日期时间选择器,我希望您对ui-modal本身没有任何问题。

这是我的html代码,将其放在你的pdc.html模板html中。

<div class="form-group col-md-6">
<label class="font-bold  small">Date on Cheque:</label>
<div class="dropdown">
    <a class="dropdown-toggle" id="dateModelId" role="button" data-toggle="dropdown" data-target="#" href="#">
        <div class="input-group dropdown">
            <input type="text" 
                   name="date"
                   class="form-control"
                   data-ng-model="dateModel">
            <span class="input-group-addon"> <i class="fa fa-calendar"></i></span>
        </div>
    </a>
    <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
        <datetimepicker
                data-ng-model="dateModel"
                data-datetimepicker-config="{startView:'day', minView:'day',dropdownSelector: '#dateModelId' }">
        </datetimepicker>
    </ul>
</div>

并且你的角度代码没有任何不同,因为这个日期选择器是一个原生的angular-js库,不需要编写Jquery代码,你可以通过访问$ scope.dateModel来获取数据。

如果你想知道我是如何从我的主控制器触发ui-modal的话,那就是。

$scope.onShowDialog = function (ev) {
        $mdDialog.show({
            controller: 'dialogController',
            templateUrl: 'pdc.html',
            parent: angular.element(document.body),
            targetEvent: ev,
            clickOutsideToClose: false,
            hasBackdrop: false,
            escapeToClose: true,
        })
            .then(function (answer) {

            }, function () {

            });
    }

控制器可以是内联的,也可以是对项目内对话框控制器的调用,如上所示。

这就是你如何调用对话框,

<a class="btn btn-default" type="button" ng-click="onShowDialog('$event)">
            Show Dialog</a>