ionic2-angular2入門實踐:tour-of-heroes

這是一個ionic2-angular2的入門實踐。
github:
https://github.com/escawn/ionic2-angular2-tour-of-heroes

在學習angular2的時候土铺,官網(wǎng)用了一個demo:tour-of-heroes來作為例子來講解一個angular2單頁面的結構。地址:(中文版)
https://angular.cn/docs/ts/latest/tutorial/

作為以開發(fā)ionic2 app為目標的初學者损拢,在反復看了幾遍教程之后,決定自己改寫一下這個demo,使他成為一個ionic2的簡單demo。

改寫步驟

  1. 新建空白ionic2應用
ionic start tour-of-heroes blank --v2 --ts

<code>blank</code>表示不使用任何模板
<code>--v2</code>表示這是一個ionic2應用(而不是ionic)
<code>--ts</code>表示以typescript為語言基礎進行編寫

  1. 按照教程妓美,進行基本的內容填寫
    找到<code>./app/page/home</code>,其中ionic2的應用代碼都是以頁(page)為單位進行編寫。home表示一頁鲤孵,雖然名字為home壶栋,但實際上app打開的主頁面是我們自己定義的,在<code>./app/app.ts</code>中:
rootPage: any = HomePage;

<code>HomePage</code>可以改為定義的任何一個page
</br>將<code>home.ts</code>的內容改為如下:

export class HomePage {
     constructor(private navController: NavController) {
  }
     public title = 'Tour of Heroes';
     public hero: Hero = {
     id: 1,
     name: 'Windstorm',
     }
}
export class Hero {
      constructor(id: number,
              name: string) {
      }
}
效果圖

<code>home.html</code>改為如下:

<ion-content padding>
  <h1>{{ title }}</h1>
  <h2>{{ hero.name }} details!</h2>
  <div padding>
    <ion-lable>id:</ion-lable>
    {{ hero.id }}
  </div>
  <div padding>
    <ion-lable>name:</ion-lable>
    <ion-input [(ngModel)] = "hero.name" type = "text" placeholder = "name"></ion-input>
  </div>
</ion-content>

效果是這樣的:


效果圖

</br>


  1. 創(chuàng)建英雄普监,添加數(shù)據(jù)
    在<code>home.ts</code>最后加
const HEROES: Hero[] = [
  { id: 11, name: 'Mr. Nice' },
  { id: 12, name: 'Narco' },
  { id: 13, name: 'Bombasto' },
  { id: 14, name: 'Celeritas' },
  { id: 15, name: 'Magneta' },
  { id: 16, name: 'RubberMan' },
  { id: 17, name: 'Dynama' },
  { id: 18, name: 'Dr IQ' },
  { id: 19, name: 'Magma' },
  { id: 20, name: 'Tornado' }
];

在<code>export class HomePage</code>內加

public heroes = HEROES;

<code>home.html</code>部分變成

<ion-header>
  <ion-navbar>
    <ion-title>
      {{ title }}
    </ion-title>
  </ion-navbar>
</ion-header>
<ion-content padding>
  <h2>My Heroes</h2>
  <ion-list class="heroes">
    <ion-item *ngFor="let hero of heroes">
      <ion-badge class="badge">{{ hero.id }}</ion-badge>
      {{ hero.name }}
    </ion-item>
  </ion-list>
</ion-content>

<code>title</code>贵试,<code>hero.id</code>,<code>hero.name</code>都是我們從<code>hero.ts</code>中導出凯正,或者說綁定的毙玻。
<code>*ngFor</code>表循環(huán)。
<code><ion-list><ion-item></code>ionic2中固定的列表用法廊散。
</br><code>home.scss</code>變成(樣式調整)

.selected {
  background-color: #CFD8DC !important;
  color: white;
}
.heroes {
  margin: 0 0 2em;
  list-style-type: none;
  padding: 0;
  width: 15em;
}
.heroes ion-item {
  cursor: pointer;
  position: relative;
  left: 0;
  background-color: #EEE;
  margin: 0.5em;
  padding: 0;
  height: 1.6em;
  border-radius: 4px;
}
.heroes ion-item.selected:hover {
  background-color: #BBD8DC !important;
  color: white;
}
.heroes ion-item:hover {
  color: #607D8B;
  background-color: #DDD;
  left: 0.1em;
}
.heroes .text {
  position: relative;
  top: -3px;
}
.heroes .badge {
  display: inline-block;
  font-size: small;
  color: white;
  padding: 0.8em 0.7em 0;
  background-color: #607D8B;
  line-height: 5em;
  position: relative;
  left: -1px;
  top: -4px;
  height: 5em;
  margin-right: 0.8em;
  border-radius: 4px 0 0 4px;
}

【注】:此處部分代碼與angular2官方給出的不同淆珊,為了達到效果進行了調整。</br>


效果圖

</br>


  1. 添加click事件
    <code>home.ts</code>里奸汇,刪除
public hero: Hero = {
    id: 1,
    name: 'Windstorm',
  }

<code>export class HomePage</code>里增加

public selectedHero: Hero;
onSelect(hero: Hero)
{ this.selectedHero = hero; }

此時<code>home.html</code>:

<ion-content padding>
  <h2>My Heroes</h2>
  <ion-list class="heroes">
    <ion-item *ngFor="let hero of heroes"  (click)="onSelect(hero)"  [class.selected]="hero === selectedHero">
      <ion-badge class="badge">{{ hero.id }}</ion-badge>
      {{ hero.name }}
    </ion-item>
  </ion-list>
  <div *ngIf="selectedHero">
    <h2>{{selectedHero.name}} details!</h2>
    <div padding>
      <ion-lable>id:</ion-lable>
      {{selectedHero.id}}
    </div>
    <div padding>
      <ion-lable>name:</ion-lable>
      <ion-input [(ngModel)] = "selectedHero.name" type = "text" placeholder = "name"></ion-input>
    </div>
  </div>
</ion-content>
效果圖

</br>


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末施符,一起剝皮案震驚了整個濱河市往声,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌戳吝,老刑警劉巖浩销,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異听哭,居然都是意外死亡慢洋,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門陆盘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來普筹,“玉大人,你說我怎么就攤上這事隘马√溃” “怎么了?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵酸员,是天一觀的道長蜒车。 經(jīng)常有香客問我,道長幔嗦,這世上最難降的妖魔是什么酿愧? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮邀泉,結果婚禮上嬉挡,老公的妹妹穿的比我還像新娘。我一直安慰自己汇恤,他們只是感情好棘伴,可當我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著屁置,像睡著了一般焊夸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蓝角,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天阱穗,我揣著相機與錄音,去河邊找鬼使鹅。 笑死揪阶,一個胖子當著我的面吹牛,可吹牛的內容都是我干的患朱。 我是一名探鬼主播鲁僚,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了冰沙?” 一聲冷哼從身側響起侨艾,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎拓挥,沒想到半個月后唠梨,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡侥啤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年当叭,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盖灸。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡蚁鳖,死狀恐怖,靈堂內的尸體忽然破棺而出赁炎,到底是詐尸還是另有隱情醉箕,我是刑警寧澤,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布甘邀,位于F島的核電站琅攘,受9級特大地震影響垮庐,放射性物質發(fā)生泄漏松邪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一哨查、第九天 我趴在偏房一處隱蔽的房頂上張望逗抑。 院中可真熱鬧,春花似錦寒亥、人聲如沸邮府。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽褂傀。三九已至,卻和暖如春加勤,著一層夾襖步出監(jiān)牢的瞬間仙辟,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工鳄梅, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留叠国,地道東北人。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓戴尸,卻偏偏與公主長得像粟焊,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內容

  • Ionic是一個基于Angular2的開發(fā)手機web app的框架项棠,它包含了一整套手機端的樣式組件悲雳,和一系列的功能...
    王兆龍閱讀 1,179評論 1 1
  • 摘要 預先說明一點,筆者是后端程序猿沾乘,前端只是略懂怜奖,僅僅略懂。這篇文章比較長翅阵,很多老鐵估計一看到滾動條就放棄了歪玲,這...
    藍山牧童閱讀 12,338評論 16 52
  • 這個組件全部放在一個文件夾中,先講下編寫組件的思路吧掷匠,其中也遇到不少坑 既然是編寫組件當時首先是創(chuàng)建一個單獨的子文...
    擂鼓人閱讀 645評論 0 1
  • 大家好滥崩,請關注我的新作 multipages-generator今日發(fā)布??!媽媽再也不用擔心移動端h5網(wǎng)站搭建了讹语!...
    yitalalww閱讀 67,649評論 72 124
  • 觀影策略钙皮,我不看當下上映的片子,不去湊這個熱鬧(當然若是把觀影當成其他功用則另當別論)顽决,也耗不起幾乎半天的來去電影...
    撿石頭的村童閱讀 183評論 2 0