Angular2 Material2 封裝組件 —— alert 消息提示框

環(huán)境:

Angular 4.0.0
Angular2 Material2 2.0.0-beta.3
node v7.4.0
npm 4.0.5

使用 Angular2 Material2 原有的組件并不通用剥懒,比如要不同的模塊使用組件Snackbar场仲,就需要在各個(gè)模塊中分別定義和使用組件,這樣就相當(dāng)繁瑣揍很,不容易復(fù)用雷则,減慢開發(fā)速度辆雾。

官方使用方法請(qǐng)參考Angular2 Material2 使用教程

使用Snackbar封裝alert消息提示框

源代碼

來,首先來看效果圖~


成功的消息提示框
警告的消息提示框
失敗的消息提示框

這三個(gè)分別是成功月劈,警告度迂,失敗的提示信息。

1.創(chuàng)建通用服務(wù)alert.service.ts

在需要使用到的地方注入該服務(wù)艺栈,并調(diào)用方法即可使用英岭。提示信息可以根據(jù)需要傳入。

import { Injectable } from '@angular/core';
// 引入官方組件
import { MdSnackBar, MdSnackBarConfig } from '@angular/material';

@Injectable()
export class alertService {

    constructor(public snackBar: MdSnackBar) { }

    // 配置 MdSnackBar 屬性
    actionButtonLabel: string = '確定'; 
    action: boolean = true; 
    setAutoHide: boolean = true; 
    autoHide: number = 10000;
    addExtraClass: boolean = false;

    // 成功
    public alertSuccess(msg) {
        let config = new MdSnackBarConfig();
        config.duration = this.autoHide;
        config.extraClasses = ['alertSuccess']; // 設(shè)置樣式alertSuccess
        this.snackBar.open(msg, this.action && this.actionButtonLabel, config);
    }

    // 警告
    public alertWarning(msg) {
        debugger;
        let config = new MdSnackBarConfig();
        config.duration = this.autoHide;
        config.extraClasses = ['alertWarning']; // 設(shè)置樣式alertWarning
        this.snackBar.open(msg, this.action && this.actionButtonLabel, config);
    }
    // 失敗
    public alertFail(msg) {
        debugger;
        let config = new MdSnackBarConfig();
        config.duration = this.autoHide;
        config.extraClasses = ['alertFail']; // 設(shè)置樣式alertFail
        this.snackBar.open(msg, this.action && this.actionButtonLabel, config);
    }
}

2.定義樣式湿右。文件:alert.component.css

.alertSuccess{
  background: #009688 !important;
}

.alertWarning{
  background: #FDD835 !important;
}

.alertFail{
  background: #E53935 !important;
}

用法( alert.service 中使用樣式 ):

config.extraClasses = ['alertSuccess'];
config.extraClasses = ['alertWarning'];
config.extraClasses = ['alertFail'];

3.使用例子

alert.component.html
<!-- 成功提示 -->
<button md-raised-button (click)="success()">Success</button>
<!-- 警告提示 -->
<button md-raised-button (click)="warning()">Warning</button>
<!-- 失敗提示 -->
<button md-raised-button (click)="fail()">Fail</button>
alert.component.ts
import { Component, ViewEncapsulation } from '@angular/core';
import { MdSnackBar, MdSnackBarConfig } from '@angular/material';
import { alertService } from './alert.service';

@Component({
    moduleId: module.id,
    selector: 'alert',
    templateUrl: './alert.component.html',
    styleUrls: ['./alert.component.css'],
    encapsulation: ViewEncapsulation.None,
    providers: [alertService]
})
export class AlertComponent {
    public constructor(private _alertService: alertService) { }

    public success() {
        this._alertService.alertSuccess("添加成功");
    }
    public warning() {
        this._alertService.alertWarning("警告诅妹!");
    }
    public fail() {
        this._alertService.alertFail("刪除失敗");
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子吭狡,更是在濱河造成了極大的恐慌尖殃,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件划煮,死亡現(xiàn)場(chǎng)離奇詭異送丰,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)弛秋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門器躏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蟹略,你說我怎么就攤上這事登失。” “怎么了挖炬?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵揽浙,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我意敛,道長(zhǎng)馅巷,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任草姻,我火速辦了婚禮钓猬,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘碴倾。我一直安慰自己逗噩,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布跌榔。 她就那樣靜靜地躺著,像睡著了一般捶障。 火紅的嫁衣襯著肌膚如雪僧须。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天项炼,我揣著相機(jī)與錄音担平,去河邊找鬼。 笑死锭部,一個(gè)胖子當(dāng)著我的面吹牛暂论,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播拌禾,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼取胎,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起闻蛀,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤匪傍,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后觉痛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體役衡,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年薪棒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了手蝎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡俐芯,死狀恐怖棵介,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情泼各,我是刑警寧澤鞍时,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站扣蜻,受9級(jí)特大地震影響逆巍,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜莽使,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一锐极、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧芳肌,春花似錦灵再、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至净薛,卻和暖如春汪榔,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背肃拜。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工痴腌, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人燃领。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓士聪,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親猛蔽。 傳聞我的和親對(duì)象是個(gè)殘疾皇子剥悟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,504評(píng)論 25 707
  • 史上最簡(jiǎn)單Angular2教程,大叔都學(xué)會(huì)了 作者:王芃 wpcfan@gmail.com 第一節(jié):初識(shí)Angul...
    接灰的電子產(chǎn)品閱讀 58,738評(píng)論 76 248
  • 大家好,請(qǐng)關(guān)注我的新作 multipages-generator今日發(fā)布??懦胞!媽媽再也不用擔(dān)心移動(dòng)端h5網(wǎng)站搭建了替久!...
    yitalalww閱讀 67,611評(píng)論 72 124
  • 起這樣一個(gè)標(biāo)題,純粹是為了吸引眼球躏尉,讓你進(jìn)來一睹而已蚯根,其實(shí)我完成的事情,根本不算什么胀糜,所以這是標(biāo)題黨颅拦! 昨天,當(dāng)我...
    永不望天閱讀 322評(píng)論 0 3
  • 其實(shí)自己很淺薄教藻,還自以為是距帅。 做好我的準(zhǔn)備,為我想要的生活努力奮斗括堤,也許現(xiàn)在就是最美好的時(shí)刻碌秸。
    紫羅蘭有蝴蝶閱讀 111評(píng)論 0 0