Professional Documents
Culture Documents
Trong Angular, chúng ta có thể làm việc với chuỗi (string) và số (number) thông
qua các biến hoặc thuộc tính trong TypeScript, tương tự như JavaScript, và hiển thị
chúng trong template của mình thông qua interpolation hoặc property binding.
Dưới đây là một số ví dụ minh họa:
Bạn có thể khai báo mảng trong mã TypeScript của Angular giống như trong
JavaScript . Ví dụ khai báo một mảng khóa học:
2.2.2 Lặp qua các phần tử của mảng
Bạn có thể sử dụng lệnh *ngFor của Angular để lặp lại các mảng trong mẫu HTML
của mình. Điều này cho phép bạn tạo các phần tử HTML cho từng mục trong
mảng.
2.2.3 Sửa đổi mảng
Bạn có thể sửa đổi mảng bằng cách thêm, xóa hoặc cập nhật các phần tử trong
Angular. Ví dụ: để thêm một phần tử vào một mảng:
Bạn có thể sử dụng hàm map trong JavaScript để biến đổi các phần tử của một
mảng thành một mảng mới. Ví dụ, ánh xạ một mảng số thành mảng bình phương
của chúng:
Hàm reduce có thể được sử dụng để tổng hợp một mảng thành một giá trị duy nhất.
Ví dụ, tính tổng các số trong một mảng:
2.3 Hành vi tha thứ (FORGIVING BEHAVIOR)
Trong ngữ cảnh của Angular, "hành vi tha thứ" không đề cập đến một khái niệm
hoặc tính năng cụ thể trong framework Angular. Thay vào đó, nó là một khái niệm
rộng hơn liên quan đến cách các cá nhân xử lý lỗi, vấn đề hoặc tình huống bất ngờ
trong ứng dụng Angular của họ. Dưới đây là cách bạn có thể áp dụng khái niệm về
hành vi tha thứ trong ngữ cảnh của Angular:
Xử lý Lỗi: Trong Angular, việc thực hiện các cơ chế xử lý lỗi mạnh mẽ là rất quan
trọng. Khi xảy ra lỗi, hãy sử dụng các khối try-catch, interceptor lỗi hoặc các toán
tử RxJS như catchError để xử lý lỗi một cách thông minh mà không gây sự sụp đổ
của toàn bộ ứng dụng. Điều này cho phép ứng dụng của bạn tiếp tục hoạt động,
ngay cả khi có lỗi.
Kiểm Tra Đầu Vào: Áp dụng kiểm tra và làm sạch đầu vào để ngăn dữ liệu không
mong muốn hoặc độc hại gây ra vấn đề trong ứng dụng Angular của bạn. Sử dụng
các tính năng tích hợp trong Angular như các biểu mẫu dựa trên mẫu hoặc biểu
mẫu phản ứng để đảm bảo rằng đầu vào của người dùng được kiểm tra và làm
sạch.
Phản Hồi Thân Thiện Với Người Dùng: Khi xảy ra lỗi, cung cấp thông báo lỗi rõ
ràng và thân thiện với người dùng. Các tính năng ràng buộc và chèn của Angular
có thể giúp bạn hiển thị thông báo lỗi hoặc thông báo cho người dùng, giúp họ hiểu
vấn đề và cách giải quyết nó.
Kiểm Tra Các Khả Năng Sập: Thiết kế ứng dụng Angular của bạn để sập một
cách đẹp khi một số tính năng hoặc API cụ thể không khả dụng hoặc gặp lỗi. Ví dụ,
xử lý trường hợp khi các API hoặc dịch vụ bên ngoài bị ngừng hoạt động bằng
cách cung cấp các chức năng phụ giữ chỗ hoặc thông báo chi tiết.
Kiểm Tra và Ghi Nhật Ký: Thực hiện quá trình theo dõi và ghi nhật ký trong ứng
dụng Angular của bạn để theo dõi lỗi và vấn đề trong thời gian thực. Các công cụ
như ErrorHandler của Angular có thể giúp tập trung xử lý lỗi và báo cáo.
Hãy nhớ rằng Angular là một framework để xây dựng ứng dụng web, và hành vi
tha thứ là hơn là một nguyên tắc phát triển và thiết kế còn là một tính năng cụ thể
của Angular. Điều quan trọng là áp dụng các nguyên tắc và thực hành tốt này để
tạo ra các ứng dụng Angular mạnh mẽ và thân thiện với người dùng có thể xử lý
tình huống bất ngờ một cách thông minh.
Trong Angular, "object expression" không phải là một khái niệm chính thức hoặc
cú pháp được định nghĩa riêng. Tuy nhiên, Angular sử dụng các biểu thức đối
tượng (object expressions) trong các ngữ cảnh khác nhau, chẳng hạn như trong các
templates và components. Đây không phải là một đặc điểm độc đáo của Angular,
mà là một phần của ngôn ngữ TypeScript và JavaScript mà Angular được xây dựng
trên đó.
Khi ta làm việc với Angular templates hoặc components, có thể sử dụng các object
expressions để hiển thị dữ liệu hoặc tương tác với các thuộc tính và phương thức
của các đối tượng.
Đầu tiên tạo một file interface mới để định nghĩa object
Sau đó import interface vào component
Gán giá trị cho các thuộc tính của đối tượng
Databinding là kỹ thuật nơi dữ liệu được đồng bộ giữa component và tầng view
(template file html). Ví dụ khi người dùng cập nhật data ở tầng view thì Angular
cũng cập nhật giá trị đó ở component.
Data binding trong Angular có thể chia ra làm 2 nhóm. Đó là one way binding
(binding 1 chiều) và two way binding (binding 2 chiều).
2.5.2. One way binding
One way binding thì dữ liệu được truyền 1 chiều. Có thể từ view sang component
hoặc ngược lại từ component sang view.
Từ component sang view chúng ta sử dụng Interpolation & Property Binding để hiển
thị dữ liệu như sau:
Component:
View HTML:
Component
View HTML:
Kết quả sau khi run:
* Ngược lại nếu isDisabled = false thì button “I am disabled” sẽ không bị khóa.
Component:
View HTML:
Event Binding sẽ được truyền dữ liệu từ view sang component bằng sự kiện.
Ví dụ.
Component:
View HTML:
Kết quả sau khi run (trước và sau khi nhấn button):
2.5.3. Two way binding
Binding 2 chiều có nghĩa là chúng ta thay đổi dữ liệu từ component qua view và
ngược lại từ view chúng ta thay đổi dữ liệu. Có nghĩa là khi chúng ta thay đổi bất
kì dữ kiệu ở một cái tầng nào thì tầng còn lại cũng được cập nhật dữ liệu. Và muốn
sử dụng được cái two way binding này thì cần thêm thư viện FormsModule tại
app.module.ts
2 way binding thì hữu dụng khi mình làm form. Chúng ta sử dụng ngModel để
thực hiện việc binding 2 chiều..
app.module.ts
View HTML:
Trong Angular, "conditional" thường được sử dụng để hiển thị hoặc ẩn các phần tử
trên trang web dựa trên một điều kiện nào đó. Có một số cách để thực hiện điều
này, trong đó *ngIf, *ngSwitch, và *ngFor là những cách phổ biến. Dưới đây là
một số lý thuyết về cách sử dụng các điều kiện trong Angular:
*ngIf: Directive *ngIf cho phép bạn hiển thị hoặc ẩn một phần tử trên trang dựa
trên một biểu thức boolean. Đây là cú pháp cơ bản:
html
Copy code
<div *ngIf="condition">
<!-- Nội dung sẽ được hiển thị nếu condition là true -->
</div>
*ngSwitch: Directive *ngSwitch cho phép bạn xác định một giá trị và hiển thị các
phần tử khác nhau dựa trên giá trị đó. Đây là cú pháp cơ bản:
html
Copy code
<div [ngSwitch]="value">
<div *ngSwitchDefault>Hiển thị khi không khớp với bất kỳ trường hợp
nào</div>
</div>
*ngFor: Directive *ngFor được sử dụng để lặp qua một mảng hoặc danh sách và
hiển thị các phần tử dựa trên điều kiện. Ví dụ:
html
Copy code
</div>
Ngoài ra, bạn cũng có thể kết hợp các điều kiện và sử dụng các toán tử logic để
kiểm tra điều kiện. Ví dụ:
html
Copy code
<!-- Hiển thị khi người dùng đã đăng nhập và có vai trò là admin hoặc editor -->
</div>
Cách 1:
Ví dụ ta có một số thuộc tính css được định nghĩa trong file component
app.component.css như sau
Cách 2:
Ví dụ trong file component class ta có biến cssStringVar. Sau đó ta gán nó qua bên
template html, như vậy khi giá trị cssStringVar thay đổi thì nó sẽ cập nhật giá trị
đó bên template html
3.3.2 ngStyle
Chúng ta sử dụng ngStyle có thể tạo nhiều thuộc tính css trong phần tử html. Các
điều kiện sẽ được đánh giá lúc chương trình đang chạy và gán giá trị vào trong thẻ
html.
Ví dụ:
ngStyle là nơi chúng ta sử dụng các css như font-size, color, width, height như ví
dụ dưới đây.
ngStyle thay đổi style động