Daily Archives: 11/03/2017

Angular – Hiển thị dữ liệu

Từ bài này chúng ta sẽ bắt đầu đi vào tìm hiểu cách sử dụng Angular 2.

Tạo project Angular

Chúng ta tạo một project bằng cách lấy bộ code mẫu từ trang Github của Angular về như trong bài Cài đặt đã hướng dẫn, đầu tiên bạn mở Command Prompt (cmd) lên, sau đó gõ lệnh sau:

C:\Project>git clone https://github.com/angular/quickstart.git displaying_data

Lệnh trên sẽ yêu cầu git tạo một thư mục với tên displaying_data, sau đó lấy bộ code từ project quickstart về từ trang Github của Angular.

Sau đó bạn gõ các lệnh sau:

C:\Project>cd displaying_data
...
C:\Project\displaying_data>npm install
...

Lệnh cd displaying_data sẽ di chuyển thư mục hiện tại trong Command Prompt vào thư mục displaying_data, sau đó lệnh npm install sẽ tải và cài các module cần thiết từ hệ thống npm về.

Vậy là chúng ta tạo project xong.

Lưu ý là trong thư mục này có rất nhiều file không cần thiết, chúng ta có thể xóa chúng đi bằng cách chạy 3 lệnh sau:

C:\Project\displaying_data>for /f %i in (non-essential-files.txt) do del %i /F /S /Q
...
C:\Project\displaying_data>rd .git /s /q
...
C:\Project\displaying_data>rd e2e /s /q
...

Trích xuất dữ liệu và hiển thị

Ở đây chúng ta sẽ khai báo biến trong lớp component và hiển thị lên màn hình.

Chúng ta sửa lại file app.component.ts trong thư mục src\app như sau:

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

@Component({
    selector: 'my-app',
    template: `
              <h1>{{ title }}</h1>
              <h2>My favorite idol is: {{myIdol}}<h2>
              `     
})
export class AppComponent { 
    title = "My idol list";
    myIdol = "Steve Jobs";
}

 

Trong file này chúng ta định nghĩa một lớp ComponentAppComponent, lớp này có 2 thuộc tính là titlemyIdol.

template: `        
          <h1>{{ title }}</h1>
          <h2>My favorite idol is: {{ myIdol }}
          <h2>
          `   

Tham số template trong phần khai báo @Component là đoạn code HTML sẽ được hiển thị lên màn hình, ở đây chúng ta hiển thị dữ liệu của 2 thuộc tính titlemyIdol.

Lưu ý: các biến sẽ được bọc trong cặp dấu ngoặc nhọn {{}}Chuỗi được bọc trong dấu huyền `` có thể ghi trên nhiều dòng.

Sau đó bạn có thể chạy lệnh npm start để chạy project rồi.

C:\Project\displaying-data>npm start

> angular-quickstart@1.0.0 prestart C:\Project\displaying-data
> npm run build

> angular-quickstart@1.0.0 build C:\Project\displaying-data>
> tsc -p src/

> angular-quickstart@1.0.0 start C:\Project\displaying-data>
> concurrently "npm run build:watch" "npm run serve"
...

Ở đây chúng ta không làm công việc gì như tạo đối tượng cả, Angular sẽ tạo giùm cho chúng ta. Tham số selector trong phần khai báo @Component ở trên định nghĩa tên thẻ sẽ được gọi trong file HTML, ở đây đã được đặt sẵn là my-app, trong file src\index.html có sẵn đoạn code tạo thẻ <my-app></my-app> để tham chiếu đến component này rồi.

Khi chúng ta chạy lệnh npm start, npm sẽ khởi động project từ file main.ts, đoạn code trong này sẽ tạo đối tượng từ lớp AppModule trong file app.module.ts, trong lớp AppModule này lại tham chiếu đến lớp AppComponent mà chúng ta vừa sửa ở trên.

Duyệt dữ liệu với *ngFor

Chúng ta dùng chỉ thị *ngFor để thực hiện việc duyệt các kiểu dữ liệu danh sách (như mảng). Ví dụ chúng ta sửa lại file app.component.ts như sau:

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

@Component({
    selector: 'my-app', 
    template: `
              <h1>{{ title }}</h1>
              <h2>My favorite idol is: {{ myIdol }}</h2>
              There are some more:
              <ul>                  
                  <li *ngFor="let idol of idols">
                      {{ idol }}
                  </li>
              </ul>
              `
})
export class AppComponent { 
    title = "My idol list";
    idols = [ 'Steve Jobs', 'Bill Gates', 'Mark Zuckerberg', 'Linus Torvalds' ];
    myIdol = this.idols[0];
}

Trong lớp AppComponent chúng ta có một mảng là idols, thuộc tính myIdol là giá trị của phần tử đầu tiên trong mảng.

Trong tham số template, chúng ta duyệt mảng idols và hiển thị trong thẻ <ul></ul>. Ở đây chúng ta dùng thuộc tính *ngFor="let idol of idols" để thực hiện việc duyệt mảng.

Biểu thức điều kiện

Chúng ta dùng chỉ thị *ngIf để thực hiện biểu thức điều kiến, ví dụ chúng ta sửa lại đoạn code app.component.ts như sau:

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

@Component({
    selector: 'my-app', 
    template: `              
              <h1>{{ title }}</h1>
              <h2>My favorite idol is: {{ myIdol }}</h2>
             <p *ngIf="idols.length > 1">There are some more:</p>
              <ul>                  
                  <li *ngFor="let idol of idols">
                      {{ idol }}
                  </li>
              </ul>
              `
})
export class AppComponent { 
    title = "My idol list";
    idols = [ 'Steve Jobs', 'Bill Gates', 'Mark Zuckerberg', 'Linus Torvalds' ];
    myIdol = this.idols[0];
}

Theo sau *ngIf là một câu lệnh so sánh hay bất cứ một biểu thức là mà có trả về giá trị true hoặc false, nếu true thì chuỗi trong cặp thẻ <p></p> mới được hiển thị.