显示Angular 2

时间:2017-04-07 01:27:13

标签: javascript 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';
    }

}

在我的 mainComponent.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();
      }

}

和我的 mainComponent.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>

1 个答案:

答案 0 :(得分:2)

根据您的情况,您应该考虑利用Angular-Material。 Angular Material已经为您实现了这一点,只需使用它:

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

constructor(public dialog: MdDialog) {}

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

这里很简单plunker

相关问题