问题标签 [mat-dialog]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
html - 你能在 Angular 的现有组件中添加一个模态对话框吗?
我有一个 mat-card 元素,里面有一个图像。
HTML
TS
我想要它,以便通过单击图像打开一个 Mat 对话框,其中包含有关图像的更多信息。是否可以通过添加到我现有的 Cardbox 组件来做到这一点?我知道我需要一个 openDialog() 方法,但我不确定如何将它实现到现有的 ts 组件中。
html - 在Angular中添加到组件构造函数会使整个页面返回空白?
我正在尝试将一个基本的 MatDialog 添加到我的项目中。在项目中,我有 2 个组件,一个页面标题和另一个名为“CardBox”的组件,它基本上只包含指向不同网站的链接的卡片盒。
当您单击“i”图标时,我想打开一个包含更多信息的对话框。
见下图。
最初,我的理解是我只是在 Cardbox 组件的构造函数中添加了一个 MatDialog 字段。像这样:
cardboxes.component.html
cardboxes.component.ts
(我知道这是调用它自己的组件,并且会再次打开相同的东西。我只是想让它先工作。)
app.component.html
但是,这样做会从页面中删除除背景之外的所有内容,包括标题组件。这是在 Cardbox 的构造函数中有 SOMETHING 时程序运行时的样子。
如您所见,构造函数中的某些内容会删除页面上的所有内容,这对我来说没有意义,因为它删除了标题,这是与卡片箱完全分开的组件。我已经尝试了一切以使其正常工作,但仍然无法正常工作。
为什么触摸构造函数会使整个项目空白?有什么我忘了添加到另一个文件吗?以及如何以有效的方式将 MatDialog 弹出功能添加到项目中?
TLDR:当我在其中一个组件的构造函数中放入任何内容时,整个页面都会消失。我该如何解决这个问题?
仍在寻求答案:(
angular - 在 Angular Material 自定义对话框中显示组件
我有一个可重复使用的自定义 Material UI 对话框,我想在其中显示一个不同的组件。例如,一次调用它并显示一个登录组件,另一次显示一个注册组件,这只是示例。
问题是当我将我的组件分配给正文(正文:InvitationComponent)时,结果是一个正确的对话框,但正文(或内容)是我的组件的代码。当您发送文本时,没关系,但是当我想发送一个组件以显示在对话框中间时,这是不可能的。问题是如何将组件作为对象或模板发送以在对话框中显示?邀请组件由 shome html 代码和 iput 控件和一个按钮组成,我想在我的对话框中间显示它。(例如,我们可以在 iframe 中显示的页面)提前感谢您的帮助。
那是我的自定义对话框组件:
angular - 在前一个关闭后一个一个打开几个 mat-dialogs
在我的代码中,我有一个按钮,它将浏览数据列表并mat-dialog
为每个数据打开一个。
不幸的是,在循环过程中,全部mat-dialogs
打开。
我想要发生的是,通过使用该dialogRef.afterClosed()
方法,取决于结果(true
)下一个mat-dialog
打开或(false
)循环结束。
我怎样才能做到这一点?我不知道该怎么做。
谢谢你的帮助。
html - 根据对象在 Mat-Dialog 中显示不同的信息?
我的项目本质上是在屏幕上显示一堆框。本质上,每个框都有一个按钮,单击该按钮会将您链接到另一个页面。这是盒子对象。
它们以 HTML 格式生成,如下所示:
我希望能够单击一个图标并显示该框的描述 - 通过 mat-dialog。问题出在我的 openDialog() 函数中。我试图在单击时打开并显示每个框的描述。这是 TS 中的标准 mat-dialog:
问题是 mat-dialog 正在完美地生成,但它列出了每一个描述,而不仅仅是我正在寻找的描述。
我看到了问题,因为 ngFor 将附加列表中每个项目的描述。我怎样才能使它只有适当对象的相应描述?
我考虑在 TS 中制作某种 If 语句结构,同时为每个对象制作单独的对话框,但我不确定它是如何工作的。
让我的对象描述显示在 mat-dialog 中而不一次显示所有描述的最佳方法是什么?我知道这很多,所以请随时提出后续问题。
angular - 如何在 MatDialog 中显示带有某些控件的 FormGroup
我有一个 CustomDialog,我将它用作确认对话框,并在其中将我的外部组件显示为模式对话框。我想在其中注入一个在 TS 文件中创建的动态 formGroup。在我使用 Metro4 组件之前,该组件在对话服务中具有如下方法:
那是TS代码:
但现在我想使用 Angular Material UI,我想创建上面提到的东西。我想知道我该怎么做。
例如,我这样称呼我的 CustomDialog:
angular - 如何在角度单元测试中使用模拟打开 MatDialog
我目前正在使用一个组件,在该组件中单击按钮会打开一个弹出窗口来问候用户。我正在使用角度材质对话框打开弹出窗口,点击时调用的组件代码块是
}
我还需要检查布尔属性以指示对话框打开和关闭。
在组件规范中,我为对话框提供模拟以防止实际依赖,如下所示,
在规范提供者中,
在之前的每个,
当我测试对话框打开时,如下所示,
它因错误而失败,
请指导如何使用规范中的模拟检查对话框打开。
angular - 尝试将数据注入 mat-dialog 时出错
我正在尝试打开一个模型,该模型将显示来自另一个组件的信息。我将数据注入子组件,但出现错误。我想知道是否是因为我注入的数组有时为空。
这是父组件
这是父模板
这是子组件
我还没有孩子的模板,但是单击按钮就会出现错误。请注意,我从父组件中看到数组,当它为空时,我看到 []。但我无法正确传递它。我会因为我试图传递一个数组而收到错误吗?
javascript - 防止 MatDialog 实例被破坏
我的应用程序中有一个按钮,可以在 MatDialog 中打开一个组件。在组件中,我进行 API 调用。在关闭 MatDialog 时,它将被销毁。
当我在单击按钮时第二次打开 MatDialog 时,我必须再次进行这些 api 调用,因为第一个实例已被破坏。
我正在寻找一个解决方案,我的 MatDialog 的第一个实例不会被破坏,并且每次单击按钮时我都不必进行 api 调用。
我的代码如下:
angular - Angular Material 主题/更改边框半径
我正在使用带有主题的 Angular Material。
现在我也想主题/更改border-radius
. 我可以在主题中这样做吗?我没有找到任何关于此的文档。
我通过使用::ng-deep
或直接处理某些组件来尝试主题化:
但没有任何效果。