如何使用角度材料实现范围内联日历?

2023-12-11

我想使用物料日历作为范围内联日历来显示和插入日期范围。 当使用 mat-date-range-picker 时,这只是工作(但不是内联)。 使用 mat-calendar 时,它适用于内联,但不适用于范围。 但是,如果我将 selectedRangeValue 作为 DateRange 而不是 Date 传递,则范围将正确显示。

唯一还缺少的就是输入...

这是我现在使用的代码(缩写):

<mat-calendar (selectedChange)="selectedRangeChange($event)"
              [selected]="selectedRangeValue"
>
</mat-calendar>
selectedRangeValue: DateRange<Date> =  new DateRange<Date>(this.selectedValue.begin, this.selectedValue.end);

我必须这样做,因为 Saturn Date picker 仅在 Angular 9 之前受支持,并且从 Angular 10 开始,Material Datepicker 支持日期范围。 但是这个“内联日期范围日历”我无法工作......

I found https://github.com/angular/components/issues/20697描述了相同的问题并找到了解决方案,但没有写下来,所以这没有帮助。

我也尝试了解 Angular Material Datepicker 的源代码,但不幸的是我仍然不明白。我将不胜感激任何帮助或提示。


建议的解决方案有很多额外的代码,更重要的是它对我不起作用。这是一个精简的工作版本。

HTML

<mat-calendar [selected]="selectedRangeValue"
  (selectedChange)="selectedChange($event)">
</mat-calendar>

TS

import { Component, EventEmitter, Input, Output } from '@angular/core';
import { DateRange } from '@angular/material/datepicker';

@Component({
    selector: 'inline-range-calendar',
    templateUrl: './inline-range-calendar.component.html',
})
export class InlineRangeCalendarComponent {

    @Input() selectedRangeValue: DateRange<Date> | undefined;
    @Output() selectedRangeValueChange = new EventEmitter<DateRange<Date>>();

    selectedChange(m: any) {
        if (!this.selectedRangeValue?.start || this.selectedRangeValue?.end) {
            this.selectedRangeValue = new DateRange<Date>(m, null);
        } else {
            const start = this.selectedRangeValue.start;
            const end = m;
            if (end < start) {
                this.selectedRangeValue = new DateRange<Date>(end, start);
            } else {
                this.selectedRangeValue = new DateRange<Date>(start, end);
            }
        }
        this.selectedRangeValueChange.emit(this.selectedRangeValue);
    }

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用角度材料实现范围内联日历? 的相关文章

  • 如何将Sinon添加到Angular 2测试中?

    我想添加Sinon进行测试 但无法让它运行 我已经安装了 sinon 和 karma sinon 作为 DevDependency 将 sinon 添加到我的 karma 配置文件中的框架中 frameworks jasmine brows
  • Mat select - 获取selectionChange的旧值

    我有一个项目 其中有一个包含以下内容的表单mat select选择器 每当用户更改输入时 我都会向用户显示一个对话框来确认此操作 现在 The selectionChange 通知值何时更改并将新值传递为 event 当用户取消对话框时 有
  • Angular 4 触发自定义事件 - EventEmitter 与dispatchEvent()

    我正在构建指令 该指令应该在元素进入视口时添加类 并且还将触发自定义事件 我找到了两种触发事件的方法 EventEmitterand dispatchEvent 两者都工作正常 在这种情况下应该使用哪个 为什么 对代码的任何其他建议表示赞赏
  • 如何在 Angular 中实现全局加载器

    我有一个全局加载器 其实现如下 核心模块 router events pipe filter x gt x instanceof NavigationStart subscribe gt loaderService show router
  • Angular 6 - 将事件处理程序添加到动态创建的 html 元素

    我想将点击事件附加到动态创建的 html 元素 单击事件应该能够触发组件中的另一个方法 我已经浏览过其他建议使用 ElementRef 附加事件的答案 但是 它不适用于我的情况 我正在使用 mapQuest API 来渲染地图 地图将绘制地
  • 角度材质表-表内边框

    I am using Angular material table and I want to set border inside the table Using CSS I was able to set border Normal ca
  • 为 Angular 2 配置history.pushState

    我的 Angular 2 应用程序使用默认值HTML 5 history pushState https developer mozilla org en US docs Web API History API Adding and mod
  • Angular 15 参考错误:初始化前无法访问“组件 A”

    我在相互导入独立组件时遇到一个问题 成分A Component standalone true selector app a templateUrl a component html styleUrls a scss imports BCo
  • 从 Angular 6 中的 html 导出 Pdf

    我想从 Angular 6 中的 html 导出 pdf 所以 我正在使用jspdf图书馆 但我不能给出颜色和背景颜色等样式 我怎样才能实现这个目标 如果有其他免费图书馆jspdf 我可以用它 您可以从下面的链接查看演示 DEMO http
  • 使用 rxjs 将数据添加到 http 响应

    我有一个包含司机 ID 的旅行实体 我可以使用 RESTFull 端点获取获取行程 例如 trips 2 example response id 2 driver id 123 我可以使用端点获取驱动程序详细信息 例如 drivers 12
  • Angular,从动态创建的组件中获取ViewChild / ViewContainerRef

    有没有办法从动态创建的组件中获取 ViewContainerRef 我的动态创建的组件内部有一个 ngContent 元素 我想在动态创建后填充该元素 export class Example ViewChild content read
  • 错误::预期有间谍,但未定义

    我收到预期的 Spy 错误 但在我的 Angular 10 测试中未定义 我正在使用 Jasmine 和 Karma 我已将 SpreadsheetService 服务模拟为mockSpreadSheetService 我正在调用它的方法
  • Angular 2发送数组另一页

    我正在使用 Angular 开发天气应用程序 我是 Angular 的新手 我想带上我选择的城市的天气信息 但我无法将数据发送到第二页 哪里有问题 预先感谢您的帮助 export class ForecastComponent implem
  • 需要在 Visual Studio 2017 中验证 Angular4 和 Angular2

    我已将源代码从 Angularjs 2 升级到 Angularjs 4 我正在使用 Visual Studio 2017 和 ASP NET MVC Core 我现在想验证我使用的是更新版本 4 还是以前的版本 2 这是我的 package
  • Angular2 命名路由

    我用的是Angular2Webpack 入门 https github com AngularClass angular2 webpack starter in 这个最新版本 https github com AngularClass an
  • 通过 Angular 2 中的输入装饰器使用多个属性

    我有一个通过其选择器接收两个输入的组件 但这可以扩展到任意数量的输入和任何组件 因此 为了消耗组件本身的多个属性 Input 装饰器不允许我使用多个属性 因此作为解决方法 我对两个输入属性使用了两个装饰器 但我认为这不是解决这种情况的唯一方
  • Angular 7 SSR 第一次加载两次

    我内置了几个网站Angular 7 with SSR for SEO改进 所有应用程序本身都很好 但总是会发生这样的情况 第一次或者当您执行硬刷新有这个小blip由此显示所有内容并突然网站本身 重新加载 所有条件为ngIf可能隐藏在中评估的
  • 如何在 Angular httpClient 拦截器中使用异步服务

    使用Angular 4 3 1和HttpClient 我需要将异步服务的请求和响应修改为httpClient的HttpInterceptor 修改请求的示例 export class UseAsyncServiceInterceptor i
  • Angular 2 - 在(点击)事件中使用管道

    我的问题可能很简单 但只是找不到在事件 例如 单击 中使用管道的方法 像这样的事情
  • 我的 Angular 7 应用程序 sitemap.xml 没有被网站管理员工具拾取

    我的 Angular 7 应用程序 sitemap xml 没有被网站管理员工具拾取 我有这个 sitemap xml 文件 我隐藏了真实姓名

随机推荐

  • MTLCreateSystemDefaultDevice 在 iOS 13 模拟器上返回 nil

    我正在使用 Xcode 11 GM Seed 11A419c 当我在 iOS 13 模拟器上运行 Metal 代码并尝试访问使用 MTLCreateSystemDefaultDevice 创建的 Metal 设备时 它返回 nil 如果没有
  • 为并行请求生成 oAuth 随机数

    我正在并行请求 Bitstamp API Simplified version var async require async var bitstamp require bitstamp async parallel bitstamp ba
  • Java中的构造函数同步

    有人告诉我 Java 构造函数是同步的 因此在构造过程中不能同时访问它 我想知道 如果我有一个构造函数将对象存储在映射中 而另一个线程在构造之前从该映射中检索它完成后 该线程会阻塞直到构造函数完成吗 让我用一些代码来演示 public cl
  • 如何让 pyinstaller 在 Ubuntu 上运行?

    我使用 Ubuntu 16 并安装了 Python 3 5 还安装了 pip3 并使用 pip3 安装了 PyInstaller 我无法运行 PyInstaller 每当我在终端中输入 pyinstaller 时 都会收到以下错误 我必须添
  • 如何在Basic中使用LibreOffice功能?

    I ve 在这里问关于这样做的好方法 现在我正在尝试以下代码在这里找到 并得到一些意想不到的错误 我想我没有以正确的方式使用它 任何想法 Sub Main Dim aResult Dim aFunc Dim oRange aFunc Get
  • 如何使用谷歌日历API从谷歌日历获取所有事件

    参考this我制作了一个应用程序 它使用 google api 从 google 日历事件获取信息 我使用了上面 URL 中给出的相同代码 现在有一个日历有 2 个日历名称 如 ME 和 XYZ 如果我使用我的电子邮件 ID 那么我只能获得
  • C++ 模板语法

    如何修复此语法错误 struct A template lt typename T gt void f template lt typename C typename U gt struct B void g U f lt C gt exp
  • javascript 通过引用传递解决方法

    假设我有一个数组 var animals dog cat rat 然后我定义var pets animals 然后我打电话pets shift 现在因为 javascript 是数组的引用传递 如果我现在调用animals I get ca
  • 如何在R中按组选择具有最小值且包含NA的行

    这是一个例子 set seed 123 data lt data frame X rep letters 1 3 each 4 Y sample 1 12 12 Z sample 1 100 12 data data 3 lt NA 我要意
  • WordPress 阻止用户发布全尺寸图像上传

    WordPress 有什么方法可以阻止内容编辑者在将图像上传到帖子时选择 全尺寸 选项吗 我希望他们只有 缩略图 中 和 大 选项 我曾经使用 Scissors 插件来执行此操作 但从 Wordpress 2 9 开始 该插件不再起作用 您
  • 如何修改Java声音文件的音高? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 询问我们的问题推荐或查找工具 库或最喜欢的场外资源与 Stack Overflow 无关 因为它们往往会吸引固执己见的答案和垃圾邮件 反而 描述问题以及迄今为止已采取哪些措施来解决该
  • 使用 SQLite3 + Mutagen 优化 Python 代码

    我正在改进一个开源音乐数 据库 该数据库从我的收藏中读取歌曲并将它们存储到 SQLite 数据库中 反过来 我可以利用数据库查找重复项 对我的收藏运行查询 并且 如果我愿意 在收藏中查找重复的歌曲 要从音乐文件中读取元数据 我正在利用Mut
  • 在单声道上获取带有转义斜杠的 Uri

    更新 修复现已进入mono 这是个好消息 更新 添加了修复片段处理的逻辑 我正在尝试使用 Uri 类在 Mono 上发送带有编码斜杠的请求 这基本上是 Mono 的等价物question 获取带有 url 编码斜杠的 URL 问题在于 与
  • 使用 Windows 身份验证通过 sqlsrv_connect 连接到 SQL Server

    The 官方指南使用 Microsoft 的 PHP 驱动程序连接到 SQL Server 似乎非常简单 因此我复制了大部分文本 server serverlocation prod database array Database gt t
  • PyInstaller 和 FastAPI(超出最大递归深度)

    我有一个 python 服务 使用fastapi作为网络界面 我需要制作一个可执行文件 因此我正在使用py安装程序 我不断收到以下错误 File miniconda3 lib python3 7 site packages PyInstal
  • 我应该在网站上使用相对 URL 还是绝对 URL?

    如果我不移动我的网站 有什么充分的理由说明为什么我应该使用绝对 URL 而不是相对 URL 无论您是否将内容从一个文件夹移动到另一个文件夹 绝对 URL 都将起作用 但是每种语言都有一种以这种或另一种方式引用基本 URL 的方法 例如 如果
  • Chrome 不支持 Webgl 2.0

    我的 chrome 显示 Webgl 2 0 支持 但在浏览器设置中禁用 或被扩展阻止 我努力了 1 在chrome settings中使用硬件加速 2 在 chrome flags 中启用 WEBGL 2 0 3 覆盖软件渲染列表 还有什
  • 权限被拒绝:“CreateObject”-ImageResizer

    我只是尝试安装 imageresizing net com 对象 我正在使用以下代码来创建该对象 set c CreateObject ImageResizer Configuration Config c BuildImage image
  • 从oracle存储过程中获取结果集

    我正在努力将存储过程从 SQL Server 转换为 Oracle 此存储过程提供直接结果集 我的意思是 如果您在例如 Management Studio 中调用存储过程 您将直接获得结果集 通过转换为Oracle 我遇到了Oracle中不
  • 如何使用角度材料实现范围内联日历?

    我想使用物料日历作为范围内联日历来显示和插入日期范围 当使用 mat date range picker 时 这只是工作 但不是内联 使用 mat calendar 时 它适用于内联 但不适用于范围 但是 如果我将 selectedRang