angular - Bootstrap 日期时间选择器不适用于 Angular 6 或 7
问题描述
我从角度 6 创建一个正常的反应
<div class="input-group date">
<input type="text" class="form-control m-input m_datetimepicker" placeholder="Select auction start date & time"
formControlName="addStartDate" [ngClass]="{ 'is-invalid': addForm.get('addStartDate').touched && addForm.get('addStartDate').invalid }" />
<div class="input-group-append">
<span class="input-group-text"><i class="la la-calendar-check-o glyphicon-th"></i></span>
</div>
<div class="invalid-feedback">
<div>* Time start date & time is required</div>
</div>
</div>
因此,我使用基本 jquery 来初始化日期时间选择器
$("body").on("focus", ".m_datetimepicker", function () {
$(".m_datetimepicker").datetimepicker({
autoclose: true,
todayBtn: true,
keepOpen: false,
startDate: today,
dateFormat: 'dd/mm/yy',
});
});
它可以工作,但是当我们在表单中使用日期时间来但this.addForm.value
该列表示日期时间选择器值没有与之绑定时formControlName
,它给了我null
价值。有人能告诉我为什么吗?
解决方案
你不应该在 Angular 中使用 jQuery 和基于 jQuery 的库。这是整个 Angular 理念的矛盾。你也不应该直接在 DOM 上操作以保持与 Angular 服务的不同环境的兼容。
为了安全地操作 DOM 树,请使用内置渲染器 - Renderer2(必须注入到组件中)
尝试改用 ngx-bootstrap 库。它完全适合与 Angular 一起使用: https ://www.npmjs.com/package/ngx-bootstrap
编辑 这里是使用 ngx-bootstrap 的 datepicker 示例: https ://stackblitz.com/edit/ngx-bootstrap-datepicker
推荐阅读
- python - 如何从重复的多行文件中获取模式
- java - 当特定的弹簧配置文件处于活动状态时,如何防止运行测试?
- angular - Angular 6 路由 - 根据父路由参数设置子路由组件
- peewee - 解决选择查询中的 SQLite 参数限制
- php - 如果它们在具有内联 css 属性的 div 内,如何在 php 中显示成功和错误消息 display:none
- shell - Pywal 没有在 crontab 上更改 GNOME 上的壁纸
- c# - 如何从 ASP.NET MVC 中的单元测试中分配 BaseController 值
- automation - 如何修复此“使用带有 contextId 的 'CLASS_NAME' 查找'android.widget.TextView':''多个:false”
- typescript - lambda函数中警告中的阴影变量
- javascript - 将两个图像与 JavaScript 合并为水印