我目前正在使用 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(使用前将#替换为@)