打开模态表单,其中包含从另一个 ngx-formly 表单从 ngx-formly 创建的表单

2024-02-08

我目前正在使用 ngx-formly 从 JSON 动态创建一堆 Angular 表单,效果非常好。我有一个特殊的用例,其中表单上的自定义按钮应该在单击时打开一个包含另一个表单的模式对话框,该对话框还包含使用 ngx-formly 创建的表单。我在 ngx-formly 网站上看到的示例使用自定义按钮,并使用 .ts 文件创建自定义组件,但我想避免这种情况,因为我将有多个表单执行此操作,并且我不想创建不同的组件为了这。

有没有办法从 ngx-formly 表单触发模式对话框,以 ngx-formly 表单显示模式,而无需为它们创建多个组件(.ts)文件?


具有动态数据的通用 Bootstrap 模型

  • jQuery 示例: https://stackblitz.com/edit/ngx-bootstrap-fh92s3 https://stackblitz.com/edit/ngx-bootstrap-fh92s3

模态服务.ts

import {Injectable} from '@angular/core';
import {ModalModel} from './modal.model';
import {Subject} from "rxjs/Subject";

declare let $: any;

@Injectable()
export class ModalService {

  modalData = new Subject<ModalModel>();

  modalDataEvent = this.modalData.asObservable();

  open(modalData: ModalModel) {

    this.modalData.next(modalData);

    $('#myModal').modal('show');
  }

}

模态组件.ts

import { Component } from '@angular/core';
import { ModalService } from './modal.service';
import {ModalModel} from './modal.model';

declare let $: any;

@Component({
  selector: 'app-modal',
  templateUrl: './modal.component.html',
  styleUrls: [ './modal.component.css' ]
})
export class ModalComponent  {

  modalData: ModalModel;

  constructor(private modalService: ModalService) {
    this.modalService.modalDataEvent.subscribe((data) => {
      this.modalData = data;
    })
  }

}

从任何组件调用此服务

import { Component } from '@angular/core';
import { ModalService } from '../modal/modal.service';
import { ModalModel } from '../modal/modal.model';


declare let $: any;

@Component({
  selector: 'app-home',
  templateUrl: './home.component.html',
  styleUrls: [ './home.component.css' ]
})
export class HomeComponent  {

  modelData = new ModalModel();

  constructor(private modalService: ModalService) {

  }

  open() {
    this.modelData.header = 'This is my dynamic HEADER from Home component';
    this.modelData.body = 'This is my dynamic BODY from Home component';
    this.modelData.footer = 'This is my dynamic footer from Home component';
    this.modalService.open(this.modelData);
  }
}
  • 没有 jQuery 的示例,即使用 ngx-bootstrap: https://stackblitz.com/edit/angular-ngx-bootstrap-modal https://stackblitz.com/edit/angular-ngx-bootstrap-modal
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

打开模态表单,其中包含从另一个 ngx-formly 表单从 ngx-formly 创建的表单 的相关文章

随机推荐

  • 如何在 Struts 2 上应用 Spring Security

    我已经阅读了各种教程和论坛 但没有找到结合 Spring security 和 struts2 来研究编码的工作示例 当前的大多数示例都使用 XML 文件中预定义的用户名和密码 但未连接到数据库 例子 Sample 1 https stac
  • PyQt:当内容更改时如何处理小部件的自动调整大小

    当 qt4 小部件的内容发生变化时 我遇到了一些大小问题 我将用两个简单的场景来说明我的问题 场景一 我有一个 QLineEdit 小部件 有时 当我使用 QLineEdit setText 更改其内容时 单行字符串不再适合其当前大小的小部
  • SQL Server 2005 和 SQL Server 2008 之间是否存在冲突?

    我被告知带有 BI 工具的 SQL Server 2005 安装和带有 BI 工具的 SQL Server 2008 不能在同一台计算机上一起工作 显然 一些 事情停止工作 这是我的一位团队成员告诉我的 由于我是 SQL BI 的新手 所以
  • Python:跨文件块边界的正则表达式匹配

    巨大的纯文本数据文件 我使用 python 读取了一个大文件 然后我在该块上应用正则表达式 我想根据一个标识符标签提取相应的值 由于块大小的原因 数据在块边界处丢失 要求 必须以块的形式读取文件 块大小必须小于 或等于 1 GiB Pyth
  • 与 Facebook Graph API 相关的问题

    实际上我正在使用该代码来获取 Facebook 帖子数据 Facebook CURL OPTS CURLOPT SSL VERIFYPEER false Facebook CURL OPTS CURLOPT SSL VERIFYHOST 2
  • 如何从environment.rb或初始化程序中强制RAILS_ENV=development?

    我们的主机不允许我们修改乘客配置文件 即 apache 配置或 vhosts 文件 但我们希望在开发模式下运行 Rails 因此 我们必须在应用程序重新启动时 Rails 加载的文件之一中指定环境 prod dev test 有人知道怎么做
  • 如何使用 Modernizr 测试第 n 个孩子?

    我正在尝试使用 Modernizr 来测试 nth child浏览器支持 但我不知道该怎么做 我找到了这个http jsfiddle net laustdeleuran 3rEVe http jsfiddle net laustdeleur
  • System.Timers.Timer (.NET) 真的很慢吗?

    我的印象是 System Timers Timer 创建自己的线程 并且 Microsoft 建议使用这种类型的计时器来执行更准确计时的任务 与在 UI 线程中运行的 Windows Forms Timer 相反 下面的代码 我认为 应该可
  • Service Worker 和网页之间的通信

    我正在开发一个应用程序 其目标是定期 例如每小时 向用户发送通知 我的想法是使用一个服务工作者 该服务工作者可以在选项卡关闭后运行 并继续向用户发送这些通知 网页需要能够与 Service Worker 沟通有关这些通知的具体细节 消息应该
  • 如何在Ubuntu下使用SVN 1.8和Eclipse?

    我们刚刚升级到SVN 1 8 不幸的是没有人想到我们 Linux 人 有没有办法将 Eclipse 连接到 SVN 1 8 的回购协议多米尼克 斯塔德勒 https launchpad net dominik stadler 多次提到升级到
  • 根据 Zingchart 中的列值进行多重绘图并更改线条颜色

    背景资料 我想将 gnuplot 图移植到 Zingchart 我添加了 gnuplot 源代码以更好地解释我的目标 reset set autoscale set term canvas rounded solid butt size 1
  • 如何在 Cloud Run 上部署 Typescript 项目

    Cloud Run error The user provided container failed to start and listen on the port defined provided by the PORT 8080 env
  • 选择随机记录并在一个查询中更新相同记录?

    我正在开发一个小型横幅旋转脚本 该脚本从数据库加载随机横幅 我正在跟踪数据库中的印象 想知道是否可以选择随机记录并在单个查询中更新其印象值 或者我是否需要选择随机记录 然后根据记录 pk 进行更新 使用MySQL 这无法在单个查询中完成 最
  • 限制 Django 表中的行数

    我的模型文件中有一个表 我想将其设计为表中的行数限制为十行 当超过限制时 最旧的行将被删除 对于某些上下文 这是前端的显示 向用户显示他们最近访问过的十个链接 我是 Django 新手 所以如果有人对如何做到这一点有建议 我将不胜感激 你可
  • elf 格式的可执行文件和可重定位文件有什么区别?

    elf 格式的可执行文件和 elf 格式的可重定位文件有什么区别 如您所知 每个编译后的可执行文件都是具有相对地址和绝对地址的二进制文件 因此可重定位格式是一种格式 其中函数和其他符号仍然具有名称定义 换句话说 函数和变量不绑定到任何特定地
  • 如何在 IntelliJ IDEA 13(或 WebStorm)上远程运行 mocha 测试?

    IntelliJ IDEA 13 通过 Node js 插件对 Mocha 测试提供了非常出色的支持 https www jetbrains com idea webhelp running mocha unit tests html ht
  • python udp客户端超时机制

    如果服务器套接字中生成的兰特数小于4 我的客户端套接字将暂停接收数据 我需要设置超时机制以允许客户端套接字检测到 超时 然后继续发送消息 在我运行服务器套接字然后运行客户端套接字后 出现以下错误消息 Traceback most recen
  • FirebaseTableViewDataSource 在用户注销和登录时崩溃

    我的应用程序有一个 UITableViewController 它使用 FirebaseTableViewDataSource 来自 FirebaseUI 该表正确显示了用户添加书签的帖子 但是当我注销该用户并登录另一个用户时 应用程序崩溃
  • JAVA 无法从另一个类中绘制到 JFrame 上

    我知道这是我的错误 我的问题是为什么这不起作用我错过了什么我可以称之为我把它放在一个方法而不是一个类所以我假设他们的第三个类有问题 第 1 类 package assignment pkg1 java import java awt Col
  • 打开模态表单,其中包含从另一个 ngx-formly 表单从 ngx-formly 创建的表单

    我目前正在使用 ngx formly 从 JSON 动态创建一堆 Angular 表单 效果非常好 我有一个特殊的用例 其中表单上的自定义按钮应该在单击时打开一个包含另一个表单的模式对话框 该对话框还包含使用 ngx formly 创建的表