问题标签 [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.

0 投票
1 回答
80 浏览

html - 你能在 Angular 的现有组件中添加一个模态对话框吗?

我有一个 mat-card 元素,里面有一个图像。

HTML

TS

我想要它,以便通过单击图像打开一个 Mat 对话框,其中包含有关图像的更多信息。是否可以通过添加到我现有的 Cardbox 组件来做到这一点?我知道我需要一个 openDialog() 方法,但我不确定如何将它实现到现有的 ts 组件中。

0 投票
1 回答
214 浏览

html - 在Angular中添加到组件构造函数会使整个页面返回空白?

我正在尝试将一个基本的 MatDialog 添加到我的项目中。在项目中,我有 2 个组件,一个页面标题和另一个名为“CardBox”的组件,它基本上只包含指向不同网站的链接的卡片盒。
当您单击“i”图标时,我想打开一个包含更多信息的对话框。
见下图。目前的样子

最初,我的理解是我只是在 Cardbox 组件的构造函数中添加了一个 MatDialog 字段。像这样:

cardboxes.component.html

cardboxes.component.ts

(我知道这是调用它自己的组件,并且会再次打开相同的东西。我只是想让它先工作。)

app.component.html

但是,这样做会从页面中删除除背景之外的所有内容,包括标题组件。这是在 Cardbox 的构造函数中有 SOMETHING 时程序运行时的样子。当构造函数中有东西时会发生什么

如您所见,构造函数中的某些内容会删除页面上的所有内容,这对我来说没有意义,因为它删除了标题,这是与卡片箱完全分开的组件。我已经尝试了一切以使其正常工作,但仍然无法正常工作。

为什么触摸构造函数会使整个项目空白?有什么我忘了添加到另一个文件吗?以及如何以有效的方式将 MatDialog 弹出功能添加到项目中?

TLDR:当我在其中一个组件的构造函数中放入任何内容时,整个页面都会消失。我该如何解决这个问题?

仍在寻求答案:(

0 投票
1 回答
1339 浏览

angular - 在 Angular Material 自定义对话框中显示组件

我有一个可重复使用的自定义 Material UI 对话框,我想在其中显示一个不同的组件。例如,一次调用它并显示一个登录组件,另一次显示一个注册组件,这只是示例。

问题是当我将我的组件分配给正文(正文:InvitationComponent)时,结果是一个正确的对话框,但正文(或内容)是我的组件的代码。当您发送文本时,没关系,但是当我想发送一个组件以显示在对话框中间时,这是不可能的。问题是如何将组件作为对象或模板发送以在对话框中显示?邀请组件由 shome html 代码和 iput 控件和一个按钮组成,我想在我的对话框中间显示它。(例如,我们可以在 iframe 中显示的页面)提前感谢您的帮助。

我显示的对话框

那是我的自定义对话框组件:

0 投票
3 回答
1341 浏览

angular - 在前一个关闭后一个一个打开几个 mat-dialogs

在我的代码中,我有一个按钮,它将浏览数据列表并mat-dialog为每个数据打开一个。

不幸的是,在循环过程中,全部mat-dialogs打开。

我想要发生的是,通过使用该dialogRef.afterClosed()方法,取决于结果(true)下一个mat-dialog打开或(false)循环结束。

StackBlitz 这里

我怎样才能做到这一点?我不知道该怎么做。

谢谢你的帮助。

0 投票
2 回答
194 浏览

html - 根据对象在 Mat-Dialog 中显示不同的信息?

我的项目本质上是在屏幕上显示一堆框。本质上,每个框都有一个按钮,单击该按钮会将您链接到另一个页面。这是盒子对象。

它们以 HTML 格式生成,如下所示:

我希望能够单击一个图标并显示该框的描述 - 通过 mat-dialog。问题出在我的 openDialog() 函数中。我试图在单击时打开并显示每个框的描述。这是 TS 中的标准 mat-dialog:

问题是 mat-dialog 正在完美地生成,但它列出了每一个描述,而不仅仅是我正在寻找的描述。

我看到了问题,因为 ngFor 将附加列表中每个项目的描述。我怎样才能使它只有适当对象的相应描述?

我考虑在 TS 中制作某种 If 语句结构,同时为每个对象制作单独的对话框,但我不确定它是如何工作的。

让我的对象描述显示在 mat-dialog 中而不一次显示所有描述的最佳方法是什么?我知道这很多,所以请随时提出后续问题。

0 投票
0 回答
216 浏览

angular - 如何在 MatDialog 中显示带有某些控件的 FormGroup

我有一个 CustomDialog,我将它用作确认对话框,并在其中将我的外部组件显示为模式对话框。我想在其中注入一个在 TS 文件中创建的动态 formGroup。在我使用 Metro4 组件之前,该组件在对话服务中具有如下方法:

那是TS代码:

但现在我想使用 Angular Material UI,我想创建上面提到的东西。我想知道我该怎么做。

例如,我这样称呼我的 CustomDialog:

0 投票
1 回答
2019 浏览

angular - 如何在角度单元测试中使用模拟打开 MatDialog

我目前正在使用一个组件,在该组件中单击按钮会打开一个弹出窗口来问候用户。我正在使用角度材质对话框打开弹出窗口,点击时调用的组件代码块是

}

我还需要检查布尔属性以指示对话框打开和关闭。

在组件规范中,我为对话框提供模拟以防止实际依赖,如下所示,

在规范提供者中,

在之前的每个,

当我测试对话框打开时,如下所示,

它因错误而失败,

请指导如何使用规范中的模拟检查对话框打开。

0 投票
1 回答
90 浏览

angular - 尝试将数据注入 mat-dialog 时出错

我正在尝试打开一个模型,该模型将显示来自另一个组件的信息。我将数据注入子组件,但出现错误。我想知道是否是因为我注入的数组有时为空。

这是父组件

这是父模板

这是子组件

我还没有孩子的模板,但是单击按钮就会出现错误。请注意,我从父组件中看到数组,当它为空时,我看到 []。但我无法正确传递它。我会因为我试图传递一个数组而收到错误吗?

0 投票
1 回答
135 浏览

javascript - 防止 MatDialog 实例被破坏

我的应用程序中有一个按钮,可以在 MatDialog 中打开一个组件。在组件中,我进行 API 调用。在关闭 MatDialog 时,它将被销毁。

当我在单击按钮时第二次打开 MatDialog 时,我必须再次进行这些 api 调用,因为第一个实例已被破坏。

我正在寻找一个解决方案,我的 MatDialog 的第一个实例不会被破坏,并且每次单击按钮时我都不必进行 api 调用。

我的代码如下:

0 投票
1 回答
3667 浏览

angular - Angular Material 主题/更改边框半径

我正在使用带有主题的 Angular Material。

现在我也想主题/更改border-radius. 我可以在主题中这样做吗?我没有找到任何关于此的文档。

我通过使用::ng-deep或直接处理某些组件来尝试主题化:

但没有任何效果。