javascript - 在 Angular 2 上显示来自其他组件的模态组件

标签 javascript angular

我是 Angular 的新手,我有一个带有按钮的模态组件,在 (click) 上将模态的状态从隐藏更改为显示并显示。但是,我想在我的主要组件中包含此模态,因此我可以创建一个按钮,在主要组件上显示模态组件。

这是我的modalLink.ts:

import { Component,Input,trigger,state,style,transition,animate } from '@angular/core';

@Component({
    templateUrl: 'modalLink.component.html',
    styleUrls: ['modalLink.component.css'],
    animations:[
        trigger('Modal',[
            state("show",style({'display':'flex', 'opacity':'1'})),
            state("hide",style({'display':'none', 'opacity':'0'})),
            transition("show <=> hide", animate( "200ms" ))
        ])
    ]
})

export class ModalLink {
    private url:string = '';
    private modal:string = 'hide';

    private objectArea:any = []

    private objectLevel:any = []

    showModal(){
        this.modal = 'show';
    }

    hideModal(){
        this.modal = 'hide';
    }

}

在我的 ma​​inComponent.ts 上,这是我所拥有内容的摘录:

import { ModalLink } from './modalLink.component';

@Component({
    templateUrl: 'academy.component.html',
    styleUrls: ['academy.component.css']
})

export class AcademyComponent {

    @ViewChild(ModalLink) modalLink: ModalLink

    asdf() {
        this.modalLink.showModal();
      }

}

和我的 ma​​inComponent.html,其中包含调用调用 showModal() 的 asdf 函数的按钮:

<div class="container-organize resource-content">
<button (click)="asdf()" class="btn-floating btn-large btn-new-resource"><i class="ai ai-plus"></i></button>

最佳答案

对于您的情况,您应该考虑利用 Angular-Material。 Angular Material 已经为你实现了这个,只需这样使用它:

import {MdDialog} from '@angular/material';

constructor(public dialog: MdDialog) {}

openDialog() {
    this.dialog.open(DialogOverviewExampleDialog); // DialogOverviewExampleDialog is another component
}

这里很简单 plunker

关于javascript - 在 Angular 2 上显示来自其他组件的模态组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43268217/

相关文章:

javascript - 更改 "md-menu"的 Angular 2/4 Material 默认样式

javascript - 如何通过比较对象中具有不同元素的两个对象数组来过滤数组?

angular - Ionic 4 Console.Log() 未显示在函数中

javascript - 如何以编程方式为询问者的答案设置选定值

javascript - 如何获取一个数组,并在每个项目之间插入逗号?

javascript - 连接扁平数据

javascript - 错误 NG8001 : 'router-outlet' is not a known element

css - :host selector for angular-material dialog

Angular 2 : Passing data to child components

javascript - Chartjs 2 - 具有相同 y 轴的同一图表上的堆叠条形图和非堆叠线