ionic2 學習筆記

準備工作

官網(wǎng)地址:
http://ionicframework.com/docs/v2/components/#overview

官網(wǎng)為ionic2的學習者準備了Demo,如果事先裝好了ionic2環(huán)境武翎,僅需以下幾個命令:

git clone git@github.com:driftyco/ionic-preview-app.git
cd ionic-preview-app
npm install
ionic serve

Tips:

  1. mac上如果出現(xiàn)acess相關問題驯嘱,需在相關操作前加sudo
  2. 如果在npm install操作停留過久,可考慮使用cnpm

一切順利的話,就能夠看到Demo在瀏覽器上跑起來了丽蝎,如圖



</br>

正文

ActionSheet

ActionSheet效果圖

代碼位于<code>ionic-preview-app/app/pages/action-sheets/alerts/basic</code>

openMenu() {
    let actionSheet = ActionSheet.create({
      title: 'Albums',
      cssClass: 'action-sheets-basic-page',
      buttons: [
        {
          text: 'Delete',
          role: 'destructive',
          icon: !this.platform.is('ios') ? 'trash' : null,
          handler: () => {
            console.log('Delete clicked');
          }
        },
        {
          text: 'Share',
          icon: !this.platform.is('ios') ? 'share' : null,
          handler: () => {
            console.log('Share clicked');
          }
        },
        {
          text: 'Play',
          icon: !this.platform.is('ios') ? 'arrow-dropright-circle' : null,
          handler: () => {
            console.log('Play clicked');
          }
        },
        {
          text: 'Favorite',
          icon: !this.platform.is('ios') ? 'heart-outline' : null,
          handler: () => {
            console.log('Favorite clicked');
          }
        },
        {
          text: 'Cancel',
          role: 'cancel', // will always sort to be on the bottom
          icon: !this.platform.is('ios') ? 'close' : null,
          handler: () => {
            console.log('Cancel clicked');
          }
        }
      ]
    });

    this.nav.present(actionSheet);
  }

Tips:

  1. <code>button</code>中的<code>handler</code>處理與應用程序的交互,如果<code>handler</code>返回<code>false</code>誉尖,ActionSheet將不會消失烤咧。
  2. <code>role</code>為<code>Cancle</code>的<code>button</code>不管設置在哪個位置都會顯示在底部。官方建議<code>role</code>為<code>destructive</code>的按鈕最好處在第一個位置酪耳。

</br>

Alert

Alert basic
doAlert() {
    let alert = Alert.create({
      title: 'New Friend!',
      message: 'Your friend, Obi wan Kenobi, just approved your friend request!',
      buttons: ['Ok']
    });
    this.nav.present(alert);
  }

</br>


Alert checkbox
doCheckbox() {
    let alert = Alert.create();
    alert.setTitle('Which planets have you visited?');

    alert.addInput({
      type: 'checkbox',
      label: 'Alderaan',
      value: 'value1',
      checked: true
    });

    alert.addInput({
      type: 'checkbox',
      label: 'Bespin',
      value: 'value2'
    });

    alert.addInput({
      type: 'checkbox',
      label: 'Coruscant',
      value: 'value3'
    });

    alert.addInput({
      type: 'checkbox',
      label: 'Endor',
      value: 'value4'
    });

    alert.addInput({
      type: 'checkbox',
      label: 'Hoth',
      value: 'value5'
    });

    alert.addInput({
      type: 'checkbox',
      label: 'Jakku',
      value: 'value6'
    });

    alert.addInput({
      type: 'checkbox',
      label: 'Naboo',
      value: 'value6'
    });

    alert.addInput({
      type: 'checkbox',
      label: 'Takodana',
      value: 'value6'
    });

    alert.addInput({
      type: 'checkbox',
      label: 'Tatooine',
      value: 'value6'
    });

    alert.addButton('Cancel');
    alert.addButton({
      text: 'Okay',
      handler: data => {
        console.log('Checkbox data:', data);
        this.testCheckboxOpen = false;
        this.testCheckboxResult = data;
      }
    });

    this.nav.present(alert).then(() => {
      this.testCheckboxOpen = true;
    });
 }

</br>


Alert confirm
doConfirm() {
    let confirm = Alert.create({
      title: 'Use this lightsaber?',
      message: 'Do you agree to use this lightsaber to do good across the intergalactic galaxy?',
      buttons: [
        {
          text: 'Disagree',
          handler: () => {
            console.log('Disagree clicked');
          }
        },
        {
          text: 'Agree',
          handler: () => {
            console.log('Agree clicked');
          }
        }
      ]
    });
    this.nav.present(confirm);
  }

</br>


Alert prompt
doPrompt() {
    let prompt = Alert.create({
      title: 'Login',
      message: "Enter a name for this new album you're so keen on adding",
      inputs: [
        {
          name: 'title',
          placeholder: 'Title'
        },
      ],
      buttons: [
        {
          text: 'Cancel',
          handler: data => {
            console.log('Cancel clicked');
          }
        },
        {
          text: 'Save',
          handler: data => {
            console.log('Saved clicked');
          }
        }
      ]
    });
    this.nav.present(prompt);
  }

</br>


Alert redio
doRadio() {
    let alert = Alert.create();
    alert.setTitle('Lightsaber color');

    alert.addInput({
      type: 'radio',
      label: 'Blue',
      value: 'blue',
      checked: true
    });

    alert.addInput({
      type: 'radio',
      label: 'Green',
      value: 'green'
    });

    alert.addInput({
      type: 'radio',
      label: 'Red',
      value: 'red'
    });

    alert.addInput({
      type: 'radio',
      label: 'Yellow',
      value: 'yellow'
    });

    alert.addInput({
      type: 'radio',
      label: 'Purple',
      value: 'purple'
    });

    alert.addInput({
      type: 'radio',
      label: 'White',
      value: 'white'
    });

    alert.addInput({
      type: 'radio',
      label: 'Black',
      value: 'black'
    });

    alert.addButton('Cancel');
    alert.addButton({
      text: 'Ok',
      handler: data => {
        console.log('Radio data:', data);
        this.testRadioOpen = false;
        this.testRadioResult = data;
      }
    });

    this.nav.present(alert).then(() => {
      this.testRadioOpen = true;
    });
  }

Tips:

  1. <code>input</code>選項:
    • type :input的類型
    • placeholder:占位符
    • value:checkbox的值
    • label:checkbox顯示的文字
    • checked:是否選中

</br>

Bages

bages 效果圖
<ion-item>
      <ion-icon name='musical-notes' item-left style="color: #d03e84"></ion-icon>
      Albums
      <ion-badge item-right>9</ion-badge>
    </ion-item>

    <ion-item>
      <ion-icon name='logo-twitter' item-left style="color: #55acee"></ion-icon>
      Followers
    <ion-badge item-right>260k</ion-badge>
</ion-item>

Tips:

  1. bages與上面交互所用方法不同浓恳,它更作用于界面的顯示,形式也更像是ionic標簽,代碼也并非位于.ts文件而是.html文件中奖蔓。
  2. 通常用于數(shù)值的顯示赞草。

</br>

Buttons

button basic

Tips:

  1. <code>button</code>的設置(界面部分)和badges和一樣,也是寫在.html里吆鹤,形式如<code><button light>LIGHT</button></code>.
  2. 如上圖厨疙,button的顏色屬性分別為<code>light</code>,<code>secondary</code>,<code>danger</code>,<code>dark</code>.不寫任何屬性即為默認<code>default</code>

</br>

button block

Tips:

  1. <code>block</code>表示一個填充其父容器的小圓角按鈕
  2. 代碼格式形如:<code><button light block>LIGHT</button></code>.

</br>

button clear

Tips:

  1. <code>clear</code>表示一個不帶邊框的透明按鈕。
  2. 代碼格式形如:<code><button light clear>LIGHT</button></code>.

</br>

button in components

Tips:

  1. 表示在組件中的button疑务,即與其他內容(如text沾凄,icon組合起來的button)。
  2. 格式如下:
<ion-item>
      Left Icon Button
      <button item-right outline>
        <ion-icon name='star'></ion-icon>
        Left Icon
      </button>
    </ion-item>

</br>

button fab

Tips:

  1. <code>fab</code>表示一個浮動的按鈕知允。
  2. 代碼格式形如:
<button fab secondary fab-top fab-center>
    <ion-icon name="compass" is-active="false">
    </ion-icon>
</button>

fab-left/fab-right/fab-center/fab-top/fab-bottom
控制浮動按鈕的位置

</br>

button full

Tips:

  1. <code>full</code>表示一個填充其父容器的直角按鈕
  2. 代碼格式形如:<code>button light full>Light</button></code>

</br>

button icons

Tips:

  1. 表示可以和圖標組合起來的button
  2. 代碼形如:
<button light>
      <ion-icon name='arrow-back'></ion-icon>
      Back
</button>

</br>

button outline

Tips:

  1. <code>outline</code>表示一個帶有邊框的透明按鈕撒蟀。
  2. 代碼形如:<code><button light outline>Light</button></code>

</br>

button round

Tips:

  1. <code>round</code>表示一個大圓角的按鈕。
  2. 代碼形如:<code><button light round>Light</button></code>

</br>

button size

Tips:

  1. 代碼形如:<code><button light small>Light</button></code>
  2. 可選屬性:<code>small</code>,<code>medium</code>,<code>large</code>
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末温鸽,一起剝皮案震驚了整個濱河市保屯,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌涤垫,老刑警劉巖姑尺,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蝠猬,居然都是意外死亡切蟋,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門榆芦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來柄粹,“玉大人,你說我怎么就攤上這事匆绣∽び遥” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵犬绒,是天一觀的道長旺入。 經(jīng)常有香客問我,道長凯力,這世上最難降的妖魔是什么茵瘾? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮咐鹤,結果婚禮上拗秘,老公的妹妹穿的比我還像新娘。我一直安慰自己祈惶,他們只是感情好雕旨,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布扮匠。 她就那樣靜靜地躺著,像睡著了一般凡涩。 火紅的嫁衣襯著肌膚如雪棒搜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天活箕,我揣著相機與錄音力麸,去河邊找鬼。 笑死育韩,一個胖子當著我的面吹牛克蚂,可吹牛的內容都是我干的。 我是一名探鬼主播筋讨,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼埃叭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了悉罕?” 一聲冷哼從身側響起赤屋,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蛮粮,沒想到半個月后益缎,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡然想,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了欣范。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片变泄。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖恼琼,靈堂內的尸體忽然破棺而出妨蛹,到底是詐尸還是另有隱情,我是刑警寧澤晴竞,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布蛙卤,位于F島的核電站,受9級特大地震影響噩死,放射性物質發(fā)生泄漏颤难。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一已维、第九天 我趴在偏房一處隱蔽的房頂上張望行嗤。 院中可真熱鬧,春花似錦垛耳、人聲如沸栅屏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽栈雳。三九已至护奈,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間哥纫,已是汗流浹背逆济。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留磺箕,地道東北人奖慌。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像松靡,于是被迫代替她去往敵國和親简僧。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內容