首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >开放模态形式,包含从ngx-formly从另一个ngx-formly形式创建的形式

开放模态形式,包含从ngx-formly从另一个ngx-formly形式创建的形式
EN

Stack Overflow用户
提问于 2018-05-20 04:21:27
回答 1查看 1.2K关注 0票数 2

我目前正在使用ngx-formly从JSON动态地创建一组角表单,它非常好地工作。我有一个特殊的用例,在这种情况下,表单上的自定义按钮应该打开一个模态对话框,其中包含单击时的另一个表单,该对话框还将包含使用ngx格式创建的表单。我在different站点上看到的示例使用了一个自定义按钮,并使用.ts文件创建了一个自定义组件,但我希望避免这种情况,因为我需要使用几种表单来完成此操作,而且我不想为此创建不同的组件。

是否有一种方法可以从ngx表单触发一个模态对话框,在不需要为它们创建多个组件(.ts)文件的情况下用ngx表单显示模式?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-21 04:59:20

具有动态数据的公共引导模型

modal.service.ts

代码语言:javascript
复制
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');
  }

}

modal.component.ts

代码语言:javascript
复制
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;
    })
  }

}

从任何组件调用此服务

代码语言:javascript
复制
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);
  }
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50431629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档