typescript Angular2打印脚本自定义警报

abithluo  于 2022-12-14  发布在  TypeScript
关注(0)|答案(3)|浏览(124)

我对Angular2完全是新手,我一直在研究如何创建这样的自定义警报:check this alert box here
由于我是新的Angular2的概念,我不知道如何使用这个代码在我的angular2应用程序中,我做了一个表与提交按钮。我想创建一个警报提交按钮。

用户界面如下:

这是我的表.component.ts:

import {Component, NgModule } from "@angular/core";
import { BrowserModule } from '@angular/platform-browser';
import {Http} from "@angular/http";

@Component({
    selector: 'demo',
    templateUrl: './app/table/table.component.html'

})

export class TableComponent{

    public data;
    constructor(private http: Http) {
    }

    ngOnInit(): void {
        this.http.get("app/table/data.json")
            .subscribe((data) => {
                setTimeout(() => {
                    this.data = data.json();
                }, 1000);
            });
    }
    addRow()
    {
    this.data.push({
    status:''
    })
    }

    deleteRow(index) {
        this.data.splice(index,1);
    }

    public toInt(num: string) {
        return +num;
    }
    public sortByWordLength = (a: any) => {
        return a.city.length;
    }
}

这是我的表. module.ts

import { NgModule }      from '@angular/core';
import { CommonModule }      from '@angular/common';
import { FormsModule } from "@angular/forms";
import { DataTableModule } from "angular2-datatable";
import { HttpModule } from "@angular/http";

import { TableComponent }   from './table.component';
import { DataFilterPipe }   from './table-filter.pipe';



@NgModule({
    imports: [
        CommonModule,
        DataTableModule,
        FormsModule,
        HttpModule
    ],
    declarations: [TableComponent, DataFilterPipe],
    exports: [TableComponent]
})

export class TableModule { }

这是我的应用程序.module.ts:

import { NgModule }      from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';

import { AppComponent }   from './app.component';
import { TableModule }   from './table/table.module';

@NgModule({
    imports: [BrowserModule, TableModule],
    declarations: [AppComponent],
    bootstrap: [AppComponent]
})

export class AppModule { }

我试着在我上面的应用程序中实现这个code,但它是混乱的。请任何帮助是感激的,提前感谢

bqjvbblv

bqjvbblv1#

NG2-BOOTSTRAP可能是您正在寻找的。
演示网址:https://valor-software.com/ng2-bootstrap/#/modals

sy5wg1nm

sy5wg1nm2#

根据所使用的样式以及是否愿意接受beta代码,可以使用Angular 材质对话框
https://material.angular.io/components/component/dialog

cigdeys3

cigdeys33#

有几种方法可以做到这一点,你可以按照其他用户的建议,使用Bootstrap或Material来创建你正在寻找的警报。
stackoverflow中还有另一个类似的答案,建议您使用服务来触发模态。
1.创建服务以控制警报的可见性。

import { Injectable } from '@angular/core';

@Injectable()
export class AlertService {

  alert = { 
    isVisible : false,
    message : ''
  };

  constructor() { }

  show(message){
    console.log('is visible');
    this.alert.isVisible = true;
  }

  hide(){
    this.alert.isVisible = false;
  }

}

1.将警报添加到应用的根目录,这是为了确保我们可以在应用中的任何位置使用它们。

<!-- simulated html -->
<header class='header'>Hello World</header>
<main> lorem ipsum </main>
<footer>The bottom of the world</footer>

<!-- alert dialog -->
<app-alert *ngIf="alert.isVisible"></app-alert>

1.确保已将AlertService导入要激活的视图

import { Component } from '@angular/core';
import { AlertService } from '../alert.service';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent {

    private alertDialog;

    constructor(
      private alertSvc:AlertService
    ){
      this.alertDialog = this.alertSvc.alert;
    }
}

1.最后,不要忘记导入到您的模块中。

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';

import { AppComponent } from './app.component';
import { AlertService } from './alert.service';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    FormsModule,
    HttpModule
  ],
  providers: [AlertService],
  bootstrap: [AppComponent]
})
export class AppModule { }

我只在模块中导入了警报服务,这允许不同的页面使用一个中心变量,在本例中,它将是AlertService的警报对象。
我相信还有另一种方法可以直接将其注入DOM。为此,您必须阅读Valor的引导库,以了解他们是如何将其直接注入DOM的(我不太确定他们是否真的将其注入DOM)。
希望这有帮助!

相关问题