使用angular2的自定義組件

為了減少代碼的編寫,將復(fù)用率高的代碼組件化,是angular提倡的一種方式嘲碱。在angular1中兜畸,自定義組件還是比較復(fù)雜的。但是在angular中,就顯得相當(dāng)簡(jiǎn)單。

1.自定義組件

創(chuàng)建一個(gè)ts文件,以引用ionic2+highcharts為例

import {Component,ElementRef,AfterViewInit,OnDestroy,ViewChild,ContentChild} from '@angular/core';
import * as Highcharts from 'highcharts';//引入hightcharts
import {ApiengineService} from '../../providers/apiengine-service/apiengine-service'   //自定義的調(diào)用api接口

@Component({
  selector:'shop-chart',  // 在模版中使用<shop-chart></shop-chart>直接調(diào)用
  template: '<div #shopChart></div>',
  providers:[ApiengineService]
})
export class ShopChart implements AfterViewInit, OnDestroy{
  constructor(public apiengine:ApiengineService){}
//調(diào)用自定義接口涧狮,獲取圖表參數(shù)
  loadData():any{
      return new Promise((resolve,reject)=>{
        this.apiengine.getH("api.assister.shopChartMonth",{}).then(data=>{
            if(data['errno'] === 0){
                resolve(data['data']);
            }
        }).catch((err)=>{
            reject(err)
        })
      })
  }
  @ViewChild("shopChart") public chartEl:ElementRef;
  private _chart: any;
  ngAfterViewInit(){
      this.loadData().then((data)=>{
        let opts: any = data;
        //本應(yīng)用為webapp,為方便日后對(duì)圖表的更新簇宽,故將hightcharts的主要參數(shù)opts通過api方式獲取
        if (this.chartEl && this.chartEl.nativeElement) {
            opts.chart.renderTo = this.chartEl.nativeElement;
            this._chart = new Highcharts.Chart(opts);
        }
      });
  }
  ngOnDestroy() {
    this._chart.destroy();
  }
}

通過以上勋篓,就可以實(shí)現(xiàn)一個(gè)自定義的組件<shop-chart>

2. 使用

在需要使用的ts文件中,添加以下代碼

import {ShopChart} from '../../shopChart';

在@Component中添加directives

@Component{
  ...
  directives:[ShopChart]
}

再通過@ViewChild方式將組件導(dǎo)入

@ViewChild(ShopChart) shopChart:ShopChart;

最后html部分直接使用

<shop-chart></shop-chart>

3.效果圖

做了個(gè)demo魏割,請(qǐng)忽略圖表


4.遺憾

目前就發(fā)現(xiàn)這個(gè)方式可以順利實(shí)現(xiàn)在segement下切換展現(xiàn)圖表譬嚣。每次切換時(shí)都會(huì)調(diào)用api,感覺不是很好钞它。目前也是初學(xué)angular2拜银,還不能完全理解ViewChild/ViewChildren/ContentChild等的區(qū)別和具體使用方法。后續(xù)有更好的方法將更新遭垛。也希望各位大神能給給出更好的解決方案尼桶。感激不盡。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末锯仪,一起剝皮案震驚了整個(gè)濱河市泵督,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌庶喜,老刑警劉巖小腊,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件救鲤,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡秩冈,警方通過查閱死者的電腦和手機(jī)本缠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)入问,“玉大人丹锹,你說我怎么就攤上這事》沂В” “怎么了楣黍?”我有些...
    開封第一講書人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)麸折。 經(jīng)常有香客問我锡凝,道長(zhǎng)粘昨,這世上最難降的妖魔是什么垢啼? 我笑而不...
    開封第一講書人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮张肾,結(jié)果婚禮上芭析,老公的妹妹穿的比我還像新娘。我一直安慰自己吞瞪,他們只是感情好馁启,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著芍秆,像睡著了一般惯疙。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上妖啥,一...
    開封第一講書人閱讀 51,198評(píng)論 1 299
  • 那天霉颠,我揣著相機(jī)與錄音,去河邊找鬼荆虱。 笑死蒿偎,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的怀读。 我是一名探鬼主播诉位,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼菜枷!你這毒婦竟也來(lái)了苍糠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤啤誊,失蹤者是張志新(化名)和其女友劉穎岳瞭,沒想到半個(gè)月后歹袁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡寝优,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年条舔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片乏矾。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡孟抗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出钻心,到底是詐尸還是另有隱情凄硼,我是刑警寧澤,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布捷沸,位于F島的核電站摊沉,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏痒给。R本人自食惡果不足惜说墨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望苍柏。 院中可真熱鬧尼斧,春花似錦、人聲如沸试吁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)熄捍。三九已至烛恤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間余耽,已是汗流浹背缚柏。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留宾添,地道東北人船惨。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像缕陕,于是被迫代替她去往敵國(guó)和親粱锐。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,079評(píng)論 25 707
  • 組件基礎(chǔ) 組件用來(lái)包裝特定的功能扛邑,應(yīng)用程序的有序運(yùn)行依賴于組件之間的協(xié)同工作怜浅。組件是angular應(yīng)用的最小邏輯單...
    oWSQo閱讀 1,370評(píng)論 0 0
  • 今天陪老婆送企業(yè)茶歇是攜程一位主管為同事們準(zhǔn)備的下午茶那姑娘是活潑可耐心直口快之人年齡跟老婆差不多她跟我交流的第一...
    承謙閱讀 393評(píng)論 0 0
  • 文/陳安若 氣壓很低很低,空氣中充滿悶熱,我們知道暴雨天氣即將來(lái)臨恶座,該提前準(zhǔn)備雨季的食物了搀暑。 小時(shí)候長(zhǎng)輩就告訴我們...
    陳安若閱讀 403評(píng)論 0 3
  • 閨蜜告訴我她幾乎哭著走出了電影院,如此少女心的電影為什么我只有一個(gè)人看跨琳,哭的時(shí)候連一個(gè)分享的人都沒有自点,她說:“親愛...
    賀小妮閱讀 412評(píng)論 2 5