Rate this post

Trong AngularJS, các expressions được sử dụng để liên kết dữ liệu ứng dụng với HTML. AngularJS giải quyết expressions và trả về kết quả chính xác nơi expressions được viết.

Các expressions được viết bên trong dấu ngoặc kép {{expressions}}. Chúng cũng có thể được viết bên trong một chỉ thị:

ng-bind="expression". 

 Các expressions AnularJS rất giống với các expressions JavaScript. Chúng có thể chứa các ký tự, toán tử và biến. Ví dụ:

{{ 5 + 5 }} or {{ firstName + " " + lastName }} 

Hôm nay các bạn hãy cùng W3seo tìm hiểu về Expression.

Tìm hiểu về AngularJS Expressions

AngularJS Expressions là một tính năng quan trọng trong AngularJS, cho phép người dùng hiển thị dữ liệu động trên các trang web. Expressions được sử dụng để gán giá trị cho các thuộc tính HTML, thay đổi nội dung của các phần tử HTML và thực hiện các tính toán đơn giản. Expressions trong AngularJS rất mạnh mẽ và dễ sử dụng, giúp người dùng tạo ra các ứng dụng web động và tương tác một cách dễ dàng. Trong bài viết này, chúng ta sẽ tìm hiểu về cú pháp của AngularJS Expressions, cách sử dụng chúng trong HTML và so sánh với JavaScript Expressions.

Xem thêm AngularJS Directives

Cú pháp của AngularJS Expressions

Cú pháp của AngularJS Expressions được đặt trong cặp dấu ngoặc nhọn kép {{expression}}. Trong đó, expression là một biểu thức AngularJS có thể là một biến, một hàm hoặc một biểu thức phức tạp. Biểu thức AngularJS được đánh dấu bằng cặp dấu ngoặc nhọn kép để phân biệt với các biểu thức JavaScript thông thường.

Ví dụ, để hiển thị giá trị của biến message trong AngularJS Expression, ta sử dụng cú pháp như sau:

{{message}}

Nếu muốn tính tổng của hai biến num1 và num2, ta có thể sử dụng cú pháp như sau:

{{num1 + num2}}

Trong đó, num1 và num2 là các biến đã được khai báo trong controller của ứng dụng AngularJS.

Ngoài ra, trong cú pháp của AngularJS Expressions, cũng hỗ trợ sử dụng các biểu thức điều kiện và vòng lặp để điều khiển việc hiển thị dữ liệu động trên trang web.

Sử dụng AngularJS Expressions trong HTML

Để sử dụng AngularJS Expressions trong HTML, người dùng cần phải đặt cú pháp của Expressions vào giữa các cặp thẻ HTML, hoặc giữa thuộc tính của các phần tử HTML. Ví dụ, để hiển thị nội dung của biến message trong một thẻ div, ta có thể sử dụng cú pháp như sau:

<div>{{message}}</div>

Khi được hiển thị trên trình duyệt, thẻ div sẽ hiển thị nội dung của biến message.

Nếu muốn sử dụng AngularJS Expression để thay đổi giá trị của một thuộc tính HTML, ta cũng có thể sử dụng cú pháp của Expressions như sau:

<img src="{{imageUrl}}" alt="Product Image">

Trong đó, imageUrl là biến chứa đường dẫn đến hình ảnh sản phẩm. Khi được hiển thị trên trình duyệt, thuộc tính src của thẻ img sẽ được thay thế bằng giá trị của biến imageUrl.

Bên cạnh đó, người dùng cũng có thể sử dụng các biểu thức điều kiện hoặc vòng lặp để điều khiển việc hiển thị dữ liệu động trên trang web. Ví dụ, để hiển thị nội dung của một biến message chỉ khi điều kiện num lớn hơn 0 được thỏa mãn, ta có thể sử dụng cú pháp như sau:

<div ng-if="num > 0">{{message}}</div>

Trong đó, ng-if là một Structural Directive trong AngularJS, được sử dụng để điều khiển việc hiển thị các phần tử HTML dựa trên một biểu thức điều kiện.

Xem thêm AngularJS HTML DOM

Biểu thức AngularJS Complex Expressions

Biểu thức phức tạp trong AngularJS được sử dụng để tính toán giá trị của một biến dựa trên các biến khác hoặc các phép toán phức tạp. Để tạo một biểu thức phức tạp trong AngularJS, người dùng cần kết hợp các biểu thức đơn giản bằng các phép toán số học, phép toán logic hoặc các hàm tính toán khác.

Ví dụ, để tính tổng giá trị của các phần tử trong một mảng dữ liệu trong controller của ứng dụng AngularJS, ta có thể sử dụng cú pháp như sau:

{{ total = 0; for (i = 0; i < items.length; i++) { total += items[i].price * items[i].quantity } total }}

Trong đó, biểu thức total = 0 được sử dụng để khởi tạo giá trị của biến total. Biểu thức for (i = 0; i < items.length; i++) được sử dụng để lặp qua các phần tử trong mảng items, và biểu thức total += items[i].price * items[i].quantity được sử dụng để tính tổng giá trị của các phần tử. Cuối cùng, biểu thức total được sử dụng để hiển thị giá trị của biến total.

Ngoài ra, trong biểu thức phức tạp, người dùng cũng có thể sử dụng các hàm tính toán khác như hàm Math hoặc các hàm tự định nghĩa trong controller của ứng dụng AngularJS. Ví dụ, để tính giá trị của logarit tự nhiên của một số trong biến num, ta có thể sử dụng cú pháp như sau:

{{ Math.log(num) }}

Trong đó, hàm Math.log() được sử dụng để tính giá trị của logarit tự nhiên của biến num.

Xem thêm AngularJS Forms

Giới hạn của AngularJS Expressions

AngularJS Expressions có một số giới hạn mà người dùng cần phải lưu ý khi sử dụng:

  1. Không thể sử dụng các câu lệnh điều khiển như if/else, switch/case, for, while hoặc do/while trong biểu thức AngularJS Expressions. Điều này là do AngularJS Expressions không thể chứa các câu lệnh điều khiển.
  2. Biểu thức AngularJS Expressions không thể chứa các biến đối tượng hoặc hàm. Điều này có nghĩa là các biểu thức chỉ có thể tham chiếu đến các biến thuộc tính trong scope hoặc các hàm được định nghĩa trong scope.
  3. Biểu thức AngularJS Expressions không hỗ trợ các phép toán bit-to-bit (and, or, xor, not) hoặc phép toán toán tử thay đổi bit.
  4. Biểu thức AngularJS Expressions không hỗ trợ việc gán giá trị cho các biến hoặc thuộc tính.
  5. Biểu thức AngularJS Expressions chỉ hỗ trợ các phép toán số học cơ bản như +, -, *, /, %, và các phép toán so sánh như ==, !=, <, >, <=, >=, và các phép toán logic như &&, ||, !.

Tuy nhiên, người dùng có thể sử dụng các biểu thức phức tạp hơn bằng cách sử dụng các filter hoặc viết các hàm trong controller của ứng dụng AngularJS.

So sánh giữa AngularJS Expressions và JavaScript Expressions

AngularJS Expressions và JavaScript Expressions có một số sự khác nhau nhất định:

  1. AngularJS Expressions chỉ cho phép sử dụng một số hạn chế hơn so với JavaScript Expressions, vì AngularJS Expressions được thiết kế để chỉ sử dụng để hiển thị dữ liệu trong HTML template. Trong khi đó, JavaScript Expressions có thể sử dụng để thực hiện nhiều thao tác khác nhau, bao gồm xử lý sự kiện và tương tác với DOM.
  2. AngularJS Expressions có thể được sử dụng trực tiếp trong các template HTML, trong khi JavaScript Expressions phải được viết trong các script tag hoặc file script riêng biệt.
  3. AngularJS Expressions có thể được kết hợp với các directive để hiển thị dữ liệu trong các template HTML, trong khi JavaScript Expressions không có khả năng này.
  4. AngularJS Expressions sử dụng một số quy tắc khác so với JavaScript Expressions, bao gồm việc không sử dụng các câu lệnh điều khiển như if/else, switch/case, for, while hoặc do/while trong biểu thức AngularJS Expressions. Ngoài ra, AngularJS Expressions không hỗ trợ việc gán giá trị cho các biến hoặc thuộc tính, trong khi JavaScript Expressions có thể làm được điều đó.
  5. Trong khi JavaScript Expressions sử dụng toán tử {{}} để hiển thị dữ liệu trong HTML, AngularJS Expressions sử dụng toán tử {{}} hoặc [[]] để hiển thị dữ liệu.

Tóm lại, AngularJS Expressions và JavaScript Expressions có một số sự khác nhau nhất định và cần được sử dụng tùy thuộc vào mục đích sử dụng cụ thể của từng ứng dụng.

Xem thêm AngularJS AJAX

Ví dụ về expressions AngularJS

Ví dụ đơn giản:

<!DOCTYPE html>  
<html>  
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>  
<body>  
<div ng-app>  
<p>Một ví dụ về expressions đơn giản: {{ 6 + 5 }}</p>  
</div>  
</body>  
</html>  

Lưu ý: Nếu bạn loại bỏ chỉ thị “ng-app”, HTML sẽ hiển thị expressions mà không giải được nó.

Xem ví dụ này:

<!DOCTYPE html>  
<html>  
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>  
<body>  
<p>Nếu bạn loại bỏ chỉ thị "ng-app", HTML sẽ hiển thị expressions mà không giải được nó.</p>  
<div>  
<p>Một ví dụ về expressions đơn giản:  {{ 6 + 5 }}</p>  
</div>  
</body>  
</html> 

Bạn cũng có thể viết expressions ở bất cứ đâu bạn muốn, AngularJS sẽ phân giải expressions và trả về kết quả.

Hãy lấy một ví dụ để thay đổi màu của input bằng cách thay đổi giá trị của nó.

Xem ví dụ này:

<!DOCTYPE html>  
<html>  
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>  
<body>  
<p>Thay đổi giá trị của trường nhập:</p>  
<div ng-app="" ng-init="myCol='pink'">  
<input style="background-color:{{myCol}}" ng-model="myCol" value="{{myCol}}">  
</div>  
<p> AngularJS giải quyết expressions và trả về kết quả.</p>  
<p> Màu nền của ô nhập dữ liệu sẽ là màu bạn viết trong ô nhập dữ liệu.</p>  
</body>  
</html>  

Number trong AngularJS

Số AngularJS tương tự như số JavaScript.

<!DOCTYPE html>  
<html>  
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>  
<body>  
<div ng-app="" ng-init="quantity=5;cost=5">  
<p> Tổng đô la: {{ quantity * cost }}</p>  
</div>  
</body>  
</html>  

Chúng ta có thể sử dụng cùng một ví dụ bằng cách sử dụng ng-bind:

<!DOCTYPE html>  
<html>  
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>  
<body>  
<div ng-app="" ng-init="quantity=5;cost=5">  
<p>Tổng đô la: <span ng-bind="quantity * cost"></span></p>  
</div>  
</body>  
</html>    

Chuỗi trong Angular

<!DOCTYPE html>  
<html>  
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>  
<body>  
<div ng-app="" ng-init="firstName='test';lastName='test1'">  
<p>Họ tên đầy đủ của tôi: {{ firstName + " " + lastName }}</p>  
</div>  
</body>  

</html> 

Ví dụ tương tự với ng-bind:

<!DOCTYPE html>  
<html>  
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>  
<body>  
<div ng-app="" ng-init="firstName='test';lastName='test1'">  
<p> Tên đầy đủ của tôi là: 
<span ng-bind="firstName + ' ' + lastName"></span></p>  
</div>  
</body>  
</html>  

Object trong AngularJS

<!DOCTYPE html>  
<html>  
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>  
<body>  
<div ng-app="" ng-init="person={firstName:'name',lastName:'lastname'}">  
<p>Tên là {{ person.firstName }}</p>  
</div>  
</body>  
</html>  

Ví dụ tương tự với ng-bind:

<!DOCTYPE html>  
<html>  
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>  
<body>  
<div ng-app="" ng-init="person={firstName:'Sonoo',lastName:'Jaiswal'}">  
<p>Tên là  <span ng-bind="person.firstName"></span></p>  
</div>  
</body>  
</html>  

Array trong Angularjs

<!DOCTYPE html>  
<html>  
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>  
<body>  
<div ng-app="" ng-init="points=[11,115,119,12,410]">  
<p>Kết quả đầu tiên là {{ points[0] }}</p>  
</div>  
</body>  
</html>  

Thử nghiệm với ng-bind

<!DOCTYPE html>  
<html>  
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>  
<body>  
<div ng-app="" ng-init="points=[11,115,119,12,410]">  
<p>Kết quả đầu tiên là <span ng-bind="points[0]"></span></p>  
</div>  
</body>  
</html>  

Tổng kết về AngularJS Expressions.

AngularJS Expressions là cơ chế cho phép hiển thị dữ liệu động trên trang web AngularJS. Chúng được sử dụng để hiển thị giá trị của các biến, thuộc tính và kết quả của các hàm.

Cú pháp của AngularJS Expressions giống với JavaScript Expressions, bao gồm các toán tử, hàm, biến, thuộc tính và các giá trị số học.

AngularJS Expressions có thể được sử dụng trực tiếp trong các template HTML, và có thể kết hợp với các directive để hiển thị dữ liệu theo các cách khác nhau.

Tuy nhiên, có một số giới hạn của AngularJS Expressions, bao gồm việc không sử dụng các câu lệnh điều khiển, không hỗ trợ việc gán giá trị cho các biến hoặc thuộc tính và hạn chế sử dụng so với JavaScript Expressions.

Tóm lại, AngularJS Expressions là một phần quan trọng của AngularJS và được sử dụng rộng rãi để hiển thị dữ liệu động trong các ứng dụng web.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now