javascript - (Angular + Bootstrap)如何阻止两个日期选择器被同一按钮打开

标签 javascript angularjs twitter-bootstrap twitter-bootstrap-3 angular-ui-bootstrap

我有一个网页需要两个日期选择器,开始日期和结束日期。问题是,每当我单击字形打开日期选择器时,两个日期选择器都会同时打开。

这是我的模板、指令、 Controller 及其使用方式。任何帮助将不胜感激。

模板:

<div class="input-group">
    <input type="text" class="form-control" uib-datepicker-popup="dd/MM/yyyy" ng-model="start_date" is-open="popup.opened" datepicker-options="dateOptions" ng-required="true" close-text="Close" />
    <span class="input-group-btn">
        <button type="button" class="btn btn-default" ng-click="open()">
            <i class="glyphicon glyphicon-calendar"></i>
        </button>
    </span>
</div>

指令:

'use strict';
/*global angular*/

angular.module("myApp")
.directive("datepicker", function(){
    return{
        templateUrl: 'templates/datePicker.html',
        controller: 'newDateCtrl',
        replace: true
    };
});

Controller

/*global angular*/
angular.module("myApp").controller("newDateCtrl", function($scope) {

    $scope.popup = {
        opened: false
    };

    $scope.open = function() {
        $scope.popup.opened = true;
    };

    $scope.dateOptions = {
        formatYear: 'yy',
        maxDate: new Date(2020, 5, 22),
        minDate: new Date(),
        startingDay: 1
    };

})

index.html,作为这样的表单的一部分:

....
<div class="form-group">
    <label class="control-label col-sm-2">
        Start Date
    </label>
    <div class="col-sm-10">
        <datepicker></datepicker>
    </div>
</div>
<div class="form-group">
    <label class="control-label col-sm-2">
        End Date
    </label>
    <div class="col-sm-10">
        <datepicker></datepicker>
    </div>
</div>
....

最佳答案

有两件事: - 声明指令时,使用隔离范围。

.directive('...', function() {
  return {
   .... // your existing stuff
   scope: {} // this gives each directive instance isolated scope
  }
});
  • 我认为“datepicker”已经是 Bootstrap 指令的名称,因此如果您要包装它,则应该考虑给它一个不同的名称。

关于javascript - (Angular + Bootstrap)如何阻止两个日期选择器被同一按钮打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36730258/

相关文章:

javascript - Juicer.io 嵌入 JS 破坏了 Bootstrap 工具提示

javascript - 在循环中切换函数

javascript - 如何将 javaScript 中每个文本输入的首字母大写?

javascript - 预加载、延迟加载页面 Ionic 4

javascript - 德语中 AM/PM 的 Angular 矩转换

angularjs - mdInput 消息显示在无效消息元素 : 上调用的动画

javascript - 将递归节点遍历变成迭代节点遍历

javascript - 是否可以从网页返回数据到主服务器

javascript - 链接日期选择器

html - 如何使每个其他 div 具有不同的颜色