angularjs - 附加到正文时,UI Bootstrap 日期选择器重复

标签 angularjs angular-ui-bootstrap angular-ui-grid angular-ui-datepicker

我正在使用 ui.bootstrap.datepickerPopupui.grid 内的过滤器标题模板中.这让我可以按日期过滤行。我在网格菜单中还有一个按钮可以切换 grid.options.enableFiltering .

由于与 ui-grid 的对齐问题, 我有 datepicker-append-to-body为我的日期选择器设置为 true。我第一次启用过滤时,一切正常。但是,当我禁用过滤并重新启用它时,我会得到重复的日期选择器。

这是问题的样子:


我认为问题是每次启用过滤器时,以下div附加到 DOM 并且在过滤器被禁用时永远不会被删除。

<div uib-datepicker-popup-wrap=""
     ng-model="date"
     ng-change="dateSelection(date)"
     template-url="uib/template/datepickerPopup/popup.html"
     class="ng-pristine ng-untouched ng-valid ng-scope ng-empty ng-valid-date-disabled"
>
    <!-- ngIf: isOpen -->
</div>

这是一个简化的plunker: http://plnkr.co/edit/eYZt87j2O6A5xhjHj5ZG
如果我在 Time Range 中只使用一个日期选择器,我会遇到同样的问题过滤头。

任何想法都非常感谢!不想使用jQuery。

最佳答案

我没有关于为什么会发生这种情况的答案,但是没有 jQuery 的解决方案是在使用 document.querySelectorAll() 触发过滤器切换时删除弹出窗口

var elements = document.querySelectorAll("div[uib-datepicker-popup-wrap]");
Array.prototype.forEach.call(elements, function(node) {
     node.parentNode.removeChild(node);
});

普朗克 here

关于angularjs - 附加到正文时,UI Bootstrap 日期选择器重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46102072/

相关文章:

angularjs - 在 ui-grid 3.0 中标记修改后的单元格/行 $dirty

angular-ui-grid - 添加行时如何为 Angular ui-grid 设置动画

javascript - angular ui-grid - 动态改变页面大小的CSS样式是变化的

javascript - Angular 可以为对象(不是对象列表)设置默认选项吗?

javascript - 结合 AngularJS 和 Twitter Bootstrap 的最佳方式

scope - angularjs:从外部范围访问内部范围

javascript - Bootstrap Switch fn 不是函数

angularjs - 我是否需要下载特定的 js 库才能使用 highcharts-ng 指令,或者它是否已嵌入 highcharts.js 中

angularjs - 请用一个清晰​​的例子解释 AngularJS $injector

javascript - 尝试使用 Angular rootScope 跨 Controller 持久保存数据,但总是未定义