iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 12
0
自我挑戰組

Angular 學習雜記系列 第 12

Angular 學習雜記-Angular整合應用網站-員工資料管理系統(一)

  • 分享至 

  • xImage
  •  
在之前的文章中,依序提到建立新的專案、資料列表、服務、路由等技術說明,但是,都是用預設的app-component來說明,在這篇文章中,就要建立新的component。來建立不同的網頁。

大家可以想像一個component,就是一個網頁,也可以是一個網頁的某一部份,看大家要如何設計及整合。目前,規劃有三個component,分別為員工資料列表、員工明細資料、員工銷售排行榜。我們就做個簡單的SA說明,來列出component列表、相關資料設定等資料,如下表所示:

https://ithelp.ithome.com.tw/upload/images/20190928/20000953CJqPIZYM9D.png

接下來,就是要建立元件(component)。可以用Visual Studio Code的介面來建立,或是在Dos命令列,切換到要建立目錄中,再下指令來建立即可。在Visual Studio Code,在app目錄,按滑鼠的左鍵,就會出現子視窗,選取「Angular: Generate a component」。如下圖所示:

https://ithelp.ithome.com.tw/upload/images/20190928/20000953KuNO2waoTw.png

輸入元件(component)的名稱,例如:「employee-list」。按enter,到下一步,就用預設值即可。

https://ithelp.ithome.com.tw/upload/images/20190928/20000953tfQQtBgMUf.png

最後,就會出現執行的指令,按下「Confirm」就會自動產生。也可以將這個指令,在Dos命令列,直接下,也可以。

https://ithelp.ithome.com.tw/upload/images/20190928/20000953dOMFSgGfA0.png

產生出來的程式碼,如下所示:

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-employee-list',
  templateUrl: './employee-list.component.html',
  styleUrls: ['./employee-list.component.css']
})
export class EmployeeListComponent implements OnInit {

  constructor() { }

  ngOnInit() {
  }

}

接下來,將之前的程式碼。更新到新的component,程式碼如下:
employee-list.component.ts

import { Component, OnInit } from '@angular/core';

// 引用資料類
import { Employeeinfo } from './../employeeinfo';
// 載入Service
import { EmployeeserviceService } from './../employeeservice.service';

@Component({
  selector: 'app-employee-list',
  templateUrl: './employee-list.component.html',
  styleUrls: ['./employee-list.component.css']
})
export class EmployeeListComponent implements OnInit {

  employeelists: Employeeinfo[];

  // 建構子
  constructor(private employeeService: EmployeeserviceService) {}

  // 初始化
  ngOnInit() {
    this.getEmployees();
  }

  getEmployees(): void {
    this.employeelists = this.employeeService.getEmployee();
  }
}

注意的地方是在import 資料類別、服務時,因為component是在新的目錄,所以路徑也要做改變。

employee-list.component.html

<h2>員工列表</h2>
<ul class="employees">
  <li *ngFor="let employeeinfo of employeelists">
      <span class="badge">{{employeeinfo.id}}</span> {{employeeinfo.name}}
  </li>
</ul>

employee-list.component.css

.employees {
  margin: 0 0 2em 0;
  list-style-type: none;
  padding: 0;
  width: 15em;
}
.employees li {
  position: relative;
  cursor: pointer;
  background-color: #EEE;
  margin: .5em;
  padding: .3em 0;
  height: 1.6em;
  border-radius: 4px;
}

.employees li:hover {
  color: #607D8B;
  background-color: #DDD;
  left: .1em;
}

.employees a {
  color: #333;
  text-decoration: none;
  position: relative;
  display: block;
  width: 250px;
}

.employees a:hover {
  color:#607D8B;
}

.employees .badge {
  display: inline-block;
  font-size: small;
  color: white;
  padding: 0.8em 0.7em 0 0.7em;
  background-color:#405061;
  line-height: 1em;
  position: relative;
  left: -1px;
  top: -4px;
  height: 1.8em;
  min-width: 16px;
  text-align: right;
  margin-right: .8em;
  border-radius: 4px 0 0 4px;
}

最後,也要之前寫的範例,清除程式碼:
app-component.ts

import { Component, OnInit } from '@angular/core';

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

  // 建構子
  constructor() {}

  // 初始化
  ngOnInit() {

  }
}

注意:就清除程式碼,為初始的模式。

app-component.html

<app-employee-list></app-employee-list>
<router-outlet></router-outlet>

注意:也是清除所有的HTML碼,增加的component元件的區塊。

網頁執行結果 :

https://ithelp.ithome.com.tw/upload/images/20190928/20000953zlBoZg0uWd.png


上一篇
Angular 學習雜記-Angular的路由器(Routing)說明
下一篇
Angular 學習雜記-Angular整合應用網站-員工資料管理系統(二)
系列文
Angular 學習雜記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言