AngularJS cung cấp sẵn các chức năng quốc tế hóa với 3 kiểu filter là currency, date và number.
Chúng ta chỉ cần kết hợp đoạn js tương ứng với theo vị trí tùy Quốc gia. Mặc định nó sẽ gắn với ví
trị trong trình duyệt web. Ví dụ, khi sử dụng ví trí ở Đan Mạch, bạn sử dụng đoạn script sau đây:
Bạn đang xem trước 20 trang tài liệu Tài liệu AngularJS, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chúng tôi sử dụng phiên bản CDN qua loạt bài hướng dẫn này.
Ví dụ
Bây giờ chúng ta bắt đầu viết ví dụ đơn giản sử dụng thư viện AngularJS. Đầu tiên tôi tạo
trang myfirstexample.jspl như dưới đây:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-
beta.17/angular.min.js">
Welcome {{helloTo.title}} to the world of Tutorialspoint!
angular.module("myapp", [])
.controller("HelloController", function($scope) {
$scope.helloTo = {};
$scope.helloTo.title = "AngularJS";
});
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 12
Dưới đây là những thành phần mô tả đoạn code bên trên 1 cách chi tiết:
Khai báo AngularJS
Để khai báo JavaScript trong đoạn code của bạn, bạn có thể khai báo như sau:
<script
src="">
Kiểm tra phiên bản AngularJS mới nhất trên trang web chính thức của họ.
Chỉ đến ứng dụng AngularJS
Phần tiếp theo là phần HTML chứa ứng dụng AngularJS. Cái này được thêm bởi thuộc tínhng-
app tại tại phần tử root của HTML trong ứng dụng AngularJS. Bạn có thể hoặc thêm vào phần
tử html hoặc trong phần tử body như sau:
View
View là thành phần sau:
Welcome {{helloTo.title}} to the world of Tutorialspoint!
ng-controller thông báo cho AngularJS là controller nào được sử dụng trong phần
view.helloTo.title thông báo cho AngularJS viết giá trị của model với tên helloTo.title vào phần
HTML.
Controller
Controller là phần sau:
angular.module("myapp", [])
.controller("HelloController", function($scope) {
$scope.helloTo = {};
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 13
$scope.helloTo.title = "AngularJS";
});
Đoạn code trên đăng ký một hàm controller với tên HelloController trong AngularJS module với
tên myapp .... Chúng ta sẽ tìm hiểu sâu hơn về Các module và Thành phần controllers trong
các chương tương ứng. Hàm controller được đăng ký với AngularJS qua cách gọi hàm
angular.module(...).controller(...).
Tham số $scope đã truyền tới hàm controller là một model. Hàm controller thêm 1 đối
tượng helloTo JavaScript , và thêm trường title vào trong đối tượng đó.
Thực hiện
Sau khi bạn lưu đoạn code dưới tên myfirstexample.jspl và mở dưới bất kỳ trình duyệt web nào.
Bạn sẽ thấy phần kết quả như sau:
Khi trang trên được tải trong trình duyệt đó, những điều sau sẽ xảy ra:
Tài liệu HTML sẽ được tải vào trình duyệt, được ước lượng bởi trình duyệt, AngularJS
JavaScript được tải, các đối tượng global của AngularJS được khởi tạo. Sau đó, JavaScript
sẽ đăng ký hàm controller cho việc thực thi.
Tiếp theo AngularJS duyệt qua các phần tử HTML để kiểm tra ứng dụng AngularJS và các
view. Khi view được tìm thấy, nó kết nối view với tính năng controller tương ứng.
Tiếp theo, AngularJS thực hiện các hàm controller, và trả về kết quả đến phần view với dữ
liệu là model được khởi tạo trong phần controller. Trang web được tải lên hoàn toàn.
AngularJS - Cấu trúc MVC
Model View Controller hoặc MVC là cách gọi phổ biến, là một mô hình thiết kế phần mềm cho các
ứng dụng phát triển trên nền tảng web. Một Model View Controller được tạo thành bởi 3 thành
phần chính sau:
Model - Là thành phần thấp nhất của mô hình có nhiệm vụ duy trì dữ liệu.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 14
View - Có nhiệm vụ hiển thị các phần dữ liệu đến người sử dụng.
Controller - Là phần Code phần mềm mà điều khiển sự tương tác giữa Model và View
MVC trở lên phổ biến bởi nó phân tách ứng dụng một cách hợp lý giữa tầng giao diện người dùng
và hỗ trợ các phần có liên quan. Phần controller nhận tất cả các request cho ứng dụng và sau đó
làm việc với phần model để chuẩn bị dữ liệu cho phần view. Phần view sử dụng dữ liệu được
chuẩn bị bởi controller và sau đó tạo ra các dữ liệu được nhìn thấy phía người sử dụng. Phần mô
hình hóa MVC có thể được mô tả bằng hình vẽ dưới đây:
Phần Model
Phần model cho nhiệm vụ quản lý dữ liệu. Nó phản hồi các yêu cầu từ phần view và thực hiện
những phần lệnh từ controller để cập nhật các giá trị cho bản thân nó.
Phần View
Là phần hiển thị dữ liệu theo một định dạng cụ thể, được trigger bởi phần controller để hiển thị dữ
liệu.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 15
Phần Controller
Phần controller tương tác với dữ liệu người dùng và thực hiện các sự thay đổi trên đối tượng
model. Phần controller nhận các tham số đầu vào, làm cho các tham số có hiệu lực, sau đó thực
hiện các hoạt động business mà trong đó có thể thay đổi trạng thái dữ liệu model.
AngularJS là một khung làm việc dựa trên mô hình MVC. Ở các chương tiếp theo, chúng ta sẽ thấy
cách AngularJS sử dụng phương thức MVC.
AngularJS - Ứng dụng đầu tiên
Để mở đầu, chúng ta bắt đầu với việc tạo ứng dụng thực tế HelloWorld sử dụng AngularJS, chúng
tôi sẽ cho các bạn thấy các phần cụ thể của một ứng dụng AngularJS. Một ứng dụng AngularJS sẽ
bao gồm các thành phần sau:
ng-app : Directive này định nghĩa và liên kết một ứng dụng AngularJS đến trang HTML.
ng-model : Directive này bind các giá trị của dữ liệu ứng dụng AngularJS đến các điều
khiển đầu vào của HTML.
ng-bind : Directive này bind dữ liệu của ứng dụng AngularJS đến các thẻ HTML.
Các bước tạo một ứng dụng AngularJS:
Bước 1: Tải framework
Là một khung JavaScript thuần, nó có thể được thêm vào bởi sử dụng thẻ .
Bước 2: Định nghĩa ứng dụng AngularJS sử dụng ng-app directive.
...
Bước 3: Định nghĩa tên một model sử dụng ng-model directive.
Enter your Name:
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 16
Bước 4: Bind giá trị của model đã được định nghĩa ở trên sử dụng
ng-bind directive.
Hello !
Các bước để chạy một ứng dụng AngularJS
Sử dụng các bước bên trên để tạo ra một trang HTML.
testAngularJS.jsp
AngularJS First Application
Sample Application
Enter your Name:
Hello !
Kết quả
Mở trang textAngularJS.jsp trên trình duyệt, nhập tên của bạn và xem kết quả.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 17
Cách AngularJS tích hợp với HTML
ng-app directive khai báo để bắt đầu một ứng dụng AngularJS.
ng-model directive sau đó tạo biến model tên “name” được sử dụng trong trang web HTML
và trong thẻ div với ng-app directive.
ng-bind sau đó sử dụng tên model để hiển thị trong thẻ span của HTML bất cứ khi nào
người dùng nhập một thứ gì đó vào hộp văn bản.
Thẻ đóng để thông báo kết thúc một ứng dụng AngularJS.
Các Directive trong AngularJS
AngularJS directive được sử dụng để kế thừa HTML. Có những thuộc tính đặc biệt bắt đầu với tiền
tố ng-. Chúng ta sẽ thảo luận những directive:
ng-app - Directive để bắt đầu một ứng dụng AngularJS.
ng-init - Directive để khởi tạo dữ liệu cho ứng dụng.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 18
ng-model - Directive định nghĩa model như là một biến có thể sử dụng trong AngularJS.
ng-repeat - Directive lặp lại các phần tử HTML cho mỗi item trong một tập hợp.
ng-app directive
ng-app directive bắt đầu một ứng dụng AngularJS. Nó định nghĩa phần tử root. Nó tự động khởi tạo
ứng dụng và khởi tạo ứng dựng web sử dụng AngularJS. Nó cũng được sử dụng để tải các
module khác nhau của ứng dụng AngularJS. Ở các ví dụ tiếp theo, chúng ta định nghĩa một ứng
dụng AngularJS mặc định sử dụng thuộc tính ng-app của một phần tử div.
...
ng-init directive
ng-init khởi tạo các dữ liệu cho ứng dụng AngularJS. Nó được sử dụng để khởi tạo các giá trị cho
một biến được sử dụng trong ứng dụng. Ở ví dụ dưới đây, chúng ta định nghĩa một mảng các
Quốc gia. Chúng ta sử dụng cú pháp JSON để định nghĩa cho mảng các Quốc gia.
<div ng-app="" ng-init="countries=[{locale:'en-US',name:'United States'},
{locale:'en-GB',name:'United Kingdom'},
{locale:'en-FR',name:'France'}]">
...
ng-model directive
ng-model directive định nghĩa các model/biến được sử dụng trong ứng dụng AngularJS. Ở trong ví
dụ sau, chúng ta sẽ định nghĩa một model dưới tên “name”.
...
Enter your Name:
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 19
ng-repeat directive
ng-repeat directive lặp lại các phần tử HTML cho mỗi item trong một tập hợp. Ở ví dụ dưới đây,
chúng ta sẽ duyệt qua một mảng các Quốc gia.
...
List of Countries with locale:
{{ 'Country: ' + country.name + ', Locale: ' + country.locale }}
Ví dụ
Dưới đây là ví dụ bao gồm tất cả các directive mô tả bên trên:
testAngularJS.jsp
AngularJS Directives
Sample Application
<div ng-app="" ng-init="countries=[{locale:'en-US',name:'United States'},
{locale:'en-GB',name:'United Kingdom'},
{locale:'en-FR',name:'France'}]">
Enter your Name:
Hello !
List of Countries with locale:
{{ 'Country: ' + country.name + ', Locale: ' + country.locale }}
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 20
Kết quả
Mở trang textAngularJS.jsp trên trình duyệt, nhập tên của bạn và xem kết quả dưới đây.
Expression trong AngularJS
Expression được sử dụng để bind các dữ liệu ứng dụng ra thẻ HTML. Expression được viết trong
dấu {{ expression}}. Expression có cách hoạt động tương đối giống ng-bind directive. Các
expression trong ứng dụng AngularJS là các JavaScript expression thuần túy và xuất kết quả là dữ
liệu mà chúng ta sử dụng.
Sử dụng các số
Expense on Books : {{cost * quantity}} Rs
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 21
Sử dụng các chuỗi
Hello {{student.firstname + " " + student.lastname}}!
Sử dụng đối tượng
Roll No: {{student.rollno}}
Sử dụng mảng
Marks(Math): {{marks[3]}}
Ví dụ
Dưới đây là ví dụ cho các expression mô tả bên trên:
testAngularJS.jsp
AngularJS Expressions
Sample Application
<div ng-app="" ng-init="quantity=1;cost=30;
student={firstname:'Mahesh',lastname:'Parashar',rollno:101};marks=[80,90,75,73,60]">
Hello {{student.firstname + " " + student.lastname}}!
Expense on Books : {{cost * quantity}} Rs
Roll No: {{student.rollno}}
Marks(Math): {{marks[3]}}
Kết quả
Mở trang textAngularJS.jsp trên trình duyệt web và xem kết quả dưới đây.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 22
Thành phần Controller trong AngularJS
Một ứng dụng AngularJS hoạt động chính dựa vào phần controller để điều khiển luồng dữ liệu
trong ứng dụng. Một controller được định nghĩa bởi sử dụng directive là ng-controller. Một
controller là một đối tượng JavaScript bao gồm các thuộc tính và các hàm. Mỗi một controller chấp
nhận $scope là tham số để hướng đến ứng dụng/module mà phần controller này điều khiển.
...
Ở đây là phần thông báo studentController sử dụng ng-controller directive. Những bước tiếp
theo, chúng ta sẽ định nghĩa studentController như sau:
function studentController($scope) {
$scope.student = {
firstName: "Mahesh",
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 23
lastName: "Parashar",
fullName: function() {
var studentObject;
studentObject = $scope.student;
return studentObject.firstName + " " + studentObject.lastName;
}
};
}
studentController nghĩa như là một đối tượng JavaScript với $scope là tham số.
$scope hướng đến ứng dụng và được sử dụng bởi đối tượng studentController.
$scope.student là thuộc tính của đối tượng studentController.
firstName và lastName là hai thuộc tính của đối tượng $scope.student. Chúng ta khởi tạo
các giá trị cho chúng (firstName:Mahesh, lastName:Parashar).
fullName là hàm của đối tượng $scope.student có nhiệm vụ là trả về giá trị là tên đầy đủ của
student này.
Trong hàm fullname chúng ta nhận đối tượng student và sau đó trả lại tên đã kết nối.
Chú ý, chúng ta cũng có thể định nghĩa đối tượng controller ở các tệp JS riêng rẽ và khai
báo trong trang HTML.
Bây giờ chúng ta sử dụng thuộc tính studentController với ng-model hoặc expression như sau:
Enter first name:
Enter last name:
You are entering: {{student.fullName()}}
Chúng ta đã bind giá trị student.firstName và student.lastName vào 2 hộp input.
Chúng ta đã bind giá trị student.fullName() tới trang HTML.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 24
Bây giờ, mỗi khi chúng ta nhập một giá trị firstName hay lastName vào trong hộp input, tên
đầy đủ của sinh viên này sẽ được tự động cập nhật.
Ví dụ
Dưới đây là ví dụ cho phần giải thích controller bên trên:
testAngularJS.jsp
Angular JS Controller
AngularJS Sample Application
Enter first name:
Enter last name:
You are entering: {{student.fullName()}}
var mainApp = angular.module("mainApp", []);
mainApp.controller('studentController', function($scope) {
$scope.student = {
firstName: "Mahesh",
lastName: "Parashar",
fullName: function() {
var studentObject;
studentObject = $scope.student;
return studentObject.firstName + " " + studentObject.lastName;
}
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 25
};
});
Kết quả
Mở trang textAngularJS.jsp trên trình duyệt web. Và xem kết quả.
Các Filter (bộ lọc) trong AngularJS
Filter được sử dụng để thay đổi, lọc dữ liệu cho kết quả là một chuỗi khác. Dưới đây là danh sách
các filter thông dụng thường được sử dụng.
STT Tên Miêu tả
1 uppercase Chuyển đổi văn bản sang dạng chữ hoa
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 26
2 lowercase Chuyển văn bản sang dạng chữ thường
3 currency Định dạng văn bản dạng tiền tệ
4 filter
Lọc các mảng, kết quả là chuỗi con dựa trên các điều kiện cung
cấp
5 orderby Sắp xếp các mảng dựa vào các thông tin cung cấp
Bộ lọc uppercase
Thêm uppercase filter vào một expression, theo cách sử dụng dưới đây, kết quả trường tên của
sinh viên sẽ được in hoa tất cả các ký tự.
Enter first name:
Enter last name:
Name in Upper Case: {{student.fullName() | uppercase}}
Bộ lọc lowercase
Thêm lowercase filter vào một expression. Dưới đây là ví dụ cho bộ lọc với đầu ra là tất cả các ký
tự viết thường.
Enter first name:
Enter last name:
Name in Upper Case: {{student.fullName() | lowercase}}
Bộ lọc currency
Thêm currency filter vào một expression. Dưới đây là ví dụ cho bộ lọc currency trả về kết quả dưới
định dạng tiền tệ.
Enter fees:
fees: {{student.fees | currency}}
Bộ lọc filter
Để chỉ hiển thị các subject được yêu cầu, chúng ta sử dụng subjectName như là filter.
Enter subject:
Subject:
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 27
{{ subject.name + ', marks:' + subject.marks }}
Bộ lọc orderby
Để sắp xếp các subject theo điểm số, chúng ta sử dụng orderBy marks.
Subject:
{{ subject.name + ', marks:' + subject.marks }}
Ví dụ
Dưới đây là một ví dụ hoàn chỉnh cho những gì được minh họa bên trên:
testAngularJS.jsp
Angular JS Filters
AngularJS Sample Application
Enter first name:
Enter last name:
Enter fees:
Enter subject:
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 28
Name in Upper Case: {{student.fullName() | uppercase}}
Name in Lower Case: {{student.fullName() | lowercase}}
fees: {{student.fees | currency}}
Subject:
{{ subject.name + ', marks:' + subject.marks }}
var mainApp = angular.module("mainApp", []);
mainApp.controller('studentController', function($scope) {
$scope.student = {
firstName: "Mahesh",
lastName: "Parashar",
fees:500,
subjects:[
{name:'Physics',marks:70},
{name:'Chemistry',marks:80},
{name:'Math',marks:65}
],
fullName: function() {
var studentObject;
studentObject = $scope.student;
return studentObject.firstName + " " + studentObject.lastName;
}
};
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 29
});
Kết quả
Mở trang textAngularJS.jsp trên trình duyệt web. Và xem kết quả dưới đây.
AngularJS - Bảng
Dữ liệu bảng thường được lặp lại theo thứ tự tự nhiên. Ng-repeat directive có thể được sử dụng để
vẽ các bảng một cách dễ dàng. Dưới đây là ví dụ về cách sử dụng ng-repeat để tạo ra các bảng.
Name
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 30
Marks
{{ subject.name }}
{{ subject.marks }}
Bảng có thể được sử dụng với CSS style.
table, th , td {
border: 1px solid grey;
border-collapse: collapse;
padding: 5px;
}
table tr:nth-child(odd) {
background-color: #f2f2f2;
}
table tr:nth-child(even) {
background-color: #ffffff;
}
Ví dụ
Dưới đây là ví dụ cụ thể cho directive được giới thiệu bên trên.
testAngularJS.jsp
Angular JS Table
table, th , td {
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 31
border: 1px solid grey;
border-collapse: collapse;
padding: 5px;
}
table tr:nth-child(odd) {
background-color: #f2f2f2;
}
table tr:nth-child(even) {
background-color: #ffffff;
}
AngularJS Sample Application
Enter first name:
Enter last name:
Name: {{student.fullName()}}
Subject:
Name
Marks
{{ subject.name }}
{{ subject.marks }}
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 32
var mainApp = angular.module("mainApp", []);
mainApp.controller('studentController', function($scope) {
$scope.student = {
firstName: "Mahesh",
lastName: "Parashar",
fees:500,
subjects:[
{name:'Physics',marks:70},
{name:'Chemistry',marks:80},
{name:'Math',marks:65},
{name:'English',marks:75},
{name:'Hindi',marks:67}
],
fullName: function() {
var studentObject;
studentObject = $scope.student;
return studentObject.firstName + " " + studentObject.lastName;
}
};
});
Kết quả
Mở trang textAngularJS.jsp trên trình duyệt web. Và xem kết quả bên dưới.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 33
Phần tử HTML DOM trong AngularJS
Những directive dưới đây có thể được sử dụng để bind dữ liệu trong ứng dụng tới các thuộc tính
trong phần tử HTML DOM.
STT Tên Miêu tả
1 ng-disabled disables một điều khiển (control) đã cung cấp
2 ng-show Chỉ một điều khiển đã cung cấp
3 ng-hide Ẩn một điều khiển đã cung cấp
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 34
4 ng-click Biểu diễn một sự biến AngularJS click
ng-disabled directive
Thêm thuộc tính ng-disable vào một nút HTML và gắn dữ liệu này với model. Bind model tới một
hộp kiểm tra và xem kết quả.
Disable Button
Click Me!
ng-show directive
Thêm thuộc tính ng-show vào nút HTML và gắn nó cho model. Bind model đến 1 hộp kiểm tra và
xem kết quả.
Show Button
Click Me!
ng-hide directive
Thêm thuộc tính ng-hide vào nút HTML và gắn nó cho model. Bind model đến 1 hộp kiểm tra và
xem kết quả.
Hide Button
Click Me!
ng-click directive
Thêm thuộc tính ng-click vào Nút HTML và gắn nó cho model. Bind model đến hmtl và xem kết
quả.
Total click: {{ clickCounter }}
Click Me!
Ví dụ
Dưới đây là toàn bộ ví dụ cho phần mô tả đã đề cập phía trên.
testAngularJS.jsp
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 35
AngularJS HTML DOM
AngularJS Sample Application
Disable Button
Click Me!
Show Button
Click Me!
Hide Button
Click Me!
Total click: {{ clickCounter }}
Click Me!
Kết quả
Mở trang textAngularJS.jsp trên trình duyệt web và xem kết quả.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 36
Các Module trong AngularJS
AngularJS hỗ trợ tiếp cận theo hướng module. Module được sử dụng để phân biệt phần xử lý logic
(service), controller và ứng dụng và giúp code trở nên rõ ràng. Chúng ta định nghĩa module
thành các file JavaScript riêng rã và đặt tên chúng theo mỗi tệp module.js. Ở ví dụ này chúng ta sẽ
tạo ra 2 module:
Module ứng dụng - được sử dụng để khởi tạo ứng dụng với controller.
Module điều khiển - được sử dụng để định nghĩa controller.
Module ứng dụng
mainApp.js
var mainApp = angular.module("mainApp", []);
Trên đây chúng ta khai báo module ứng dụng mainApp sử dụng chức năng module hóa của
AngularJS. Chúng ta khởi tạo một mảng rỗng cho nó. Mảng này thường chứa các thành phần độc
lập trong module.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 37
Module điều khiển
studentController.js
mainApp.controller("studentController", function($scope) {
$scope.student = {
firstName: "Mahesh",
lastName: "Parashar",
fees:500,
subjects:[
{name:'Physics',marks:70},
{name:'Chemistry',marks:80},
{name:'Math',marks:65},
{name:'English',marks:75},
{name:'Hindi',marks:67}
],
fullName: function() {
var studentObject;
studentObject = $scope.student;
return studentObject.firstName + " " + studentObject.lastName;
}
};
});
Ở đây chúng ta khai báo một module là studentController sử dụng chức năngmainApp.controller.
Sử dụng các Module
..
Ở đây chúng ta sử dụng module ứng dụng sử dụng ng-app directive và controller sử dụngng-
controller directive. Chúng ta gộp cả mainApp.js và studentController.js trong tệp HTML.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 38
Ví dụ
Dưới đây là ví dụ cho phần mô tả bên trên:
testAngularJS.jsp
Angular JS Modules
table, th , td {
border: 1px solid grey;
border-collapse: collapse;
padding: 5px;
}
table tr:nth-child(odd) {
background-color: #f2f2f2;
}
table tr:nth-child(even) {
background-color: #ffffff;
}
AngularJS Sample Application
Enter first name:
Enter last name:
Name: {{student.fullName()}}
Subject:
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 39
Name
Marks
{{ subject.name }}
{{ subject.marks }}
mainApp.js
var mainApp = angular.module("mainApp", []);
studentController.js
mainApp.controller("studentController", function($scope) {
$scope.student = {
firstName: "Mahesh",
lastName: "Parashar",
fees:500,
subjects:[
{name:'Physics',marks:70},
{name:'Chemistry',marks:80},
{name:'Math',marks:65},
{name:'English',marks:75},
{name:'Hindi',marks:67}
],
fullName: function() {
var studentObject;
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 40
studentObject = $scope.student;
return studentObject.firstName + " " + studentObject.lastName;
}
};
});
Kết quả
Mở trang textAngularJS.jsp trên trình duyệt. Dưới đây là kết quả.
Form trong AngularJS
AngularJS bổ sung cho form các tính năng về filling và validation. Bạn có thể dùng ng-click để xử
lý AngularJS click trên nút và sử dụng các cờ hiệu $dirty và $invalid để làm cho nó có hiệu lực. Sử
dụng novalidate với khai báo form để vô hiệu hóa tính năng valicate của form. Phần điều khiển
form sử dụng một các hiệu quả các sự biến của AngularJS.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 41
Các sự biến
AngularJS cung cấp nhiều sự biến có thể được liên kết với phần điều khiển form của HTML. Ví dụ
ng-click thường gắn với nút (button). Dưới đây là các sự biến được hỗ trợ bởi AngularJS.
ng-click
ng-dbl-click
ng-mousedown
ng-mouseup
ng-mouseenter
ng-mouseleave
ng-mousemove
ng-mouseover
ng-keydown
ng-keyup
ng-keypress
ng-change
ng-click
Reset dữ liệu trên form sử dụng ng-click directive của một button.
Reset
function studentController($scope) {
$scope.reset = function(){
$scope.firstName = "Mahesh";
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 42
$scope.lastName = "Parashar";
$scope.email = "MaheshParashar@tutorialspoint.com";
}
$scope.reset();
}
Validate dữ liệu
Dưới đây là các biến dùng để theo dõi lỗi.
$dirty - Thông báo rằng dữ liệu bị thay đổi.
$invalid- Thông báo rằng dữ liệu nhập vào không hợp lệ.
$error- Thông báo chính xác lỗi.
Ví dụ
Dưới đây là ví dụ minh họa các directive bên trên:
testAngularJS.jsp
Angular JS Forms
table, th , td {
border: 1px solid grey;
border-collapse: collapse;
padding: 5px;
}
table tr:nth-child(odd) {
background-color: #f2f2f2;
}
table tr:nth-child(even) {
background-color: #ffffff;
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 43
}
AngularJS Sample Application
Enter first name:<input name="firstname" type="text" ng-model="firstName"
required>
<span style="color:red" ng-show="studentForm.firstname.$dirty &&
studentForm.firstname.$invalid">
First Name is required.
Enter last name: <input name="lastname" type="text" ng-model="lastName"
required>
<span style="color:red" ng-show="studentForm.lastname.$dirty &&
studentForm.lastname.$invalid">
Last Name is required.
Email: <input name="email" type="email" ng-model="email" length="100"
required>
Email is required.
Invalid email address.
Reset<button
ng-disabled="studentForm.firstname.$dirty && studentForm.firstname.$invalid ||
studentForm.lastname.$dirty && studentForm.lastname.$invalid ||
studentForm.email.$dirty && studentForm.email.$invalid"
ng-click="submit()">Submit
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 44
var mainApp = angular.module("mainApp", []);
mainApp.controller('studentController', function($scope) {
$scope.reset = function(){
$scope.firstName = "Mahesh";
$scope.lastName = "Parashar";
$scope.email = "MaheshParashar@tutorialspoint.com";
}
$scope.reset();
});
Kết quả
Mở trang textAngularJS.jsp trên trình duyệt và xem kết quả.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 45
Include trong AngularJS
HTML không hỗ trợ nhúng trang web HTML trong trang HTML. Để đạt được chức năng này có thể
sử dụng các phương thức sau:
Sử dụng Ajax - Tạo một server call để nhận trang HTML tương ứng và thiết lập nó trong
thành phần innerHTML của phần điều khiển HTML.
Sử dụng Server Side Includes - JSP,PHP và các công nghệ web server khác có thể
include HTML page trong một trang trang web động.
Với AngularJS, chúng ta có thể nhúng trang HTML sử dụng ng-include directive.
Ví dụ
tryAngularJS.jsp
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 46
Angular JS Includes
table, th , td {
border: 1px solid grey;
border-collapse: collapse;
padding: 5px;
}
table tr:nth-child(odd) {
background-color: #f2f2f2;
}
table tr:nth-child(even) {
background-color: #ffffff;
}
AngularJS Sample Application
var mainApp = angular.module("mainApp", []);
mainApp.controller('studentController', function($scope) {
$scope.student = {
firstName: "Mahesh",
lastName: "Parashar",
fees:500,
subjects:[
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 47
{name:'Physics',marks:70},
{name:'Chemistry',marks:80},
{name:'Math',marks:65},
{name:'English',marks:75},
{name:'Hindi',marks:67}
],
fullName: function() {
var studentObject;
studentObject = $scope.student;
return studentObject.firstName + " " + studentObject.lastName;
}
};
});
main.jsp
Enter first name:<input type="text" ng-
model="student.firstName">
Enter last name:
Name: {{student.fullName()}}
subjects.jsp
Subjects:
Name
Marks
{{ subject.name }}
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 48
{{ subject.marks }}
Kết quả
Để chạy ví dụ này, bạn cần phần tạo ra các tệp textAngularJS.jsp, main.jsp, subjects.jsp với
webserver. Mở trang textAngularJS.jsp sử dụng địa chỉ địa chỉ URL trên server và xem kết quả.
Ajax trong AngularJS
AngularJS cung cấp điều khiển $http mà làm như là service để đọc dữ liệu từ server. Server có thể
tạo database call để nhận các bản ghi. AngularJS cần dữ liệu dưới định dạng JSON. Khi dữ liệu
sẵn sàng, $http có thể được sử dụng để nhận dữ liệu từ server theo cách sau đây:
function studentController($scope,$http) {
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 49
var url="data.txt";
$http.get(url).success( function(response) {
$scope.students = response;
});
}
Ở đây tệp data.txt chứa các bản ghi về student. $http service tạo một ajax call và lấy kết quả trả về
cho đối tượng student. “students” model có thể dùng để vẽ bảng với HTML.
Các ví dụ
data.txt
[
{
"Name" : "Mahesh Parashar",
"RollNo" : 101,
"Percentage" : "80%"
},
{
"Name" : "Dinkar Kad",
"RollNo" : 201,
"Percentage" : "70%"
},
{
"Name" : "Robert",
"RollNo" : 191,
"Percentage" : "75%"
},
{
"Name" : "Julian Joe",
"RollNo" : 111,
"Percentage" : "77%"
}
]
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 50
testAngularJS.jsp
Angular JS Includes
table, th , td {
border: 1px solid grey;
border-collapse: collapse;
padding: 5px;
}
table tr:nth-child(odd) {
background-color: #f2f2f2;
}
table tr:nth-child(even) {
background-color: #ffffff;
}
AngularJS Sample Application
Name
Roll No
Percentage
{{ student.Name }}
{{ student.RollNo }}
{{ student.Percentage }}
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 51
function studentController($scope,$http) {
var url="data.txt";
$http.get(url).success( function(response) {
$scope.students = response;
});
}
Kết quả
Để chạy ví dụ này, bạn cần tạo testAngularJS.jsp and data.txt tới một webserver. Mở
tệptestAngularJS.jsp với địa chỉ URL trên server trên một trình duyệt web và xem kết quả.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 52
AngularJS - View
AngularJS hỗ trợ Single Page Application thông qua multiple view trên một trang đơn. Để làm
được điều này, AngularJS cung cấp ng-view và ng-template directive và $routeProvider service.
ng-view
Thẻ ng-view đơn giản là tạo nơi giữ các màn hình view tương ứng có thể được đặt trong nó dựa
vào cấu hình.
Cách sử dụng
Định nghĩa thẻ div với ng-view trong module chính.
...
ng-template
ng-template directive được sử dụng để tạo ra các HTML view sử dụng thẻ script. Nó chứa thuộc
tính “id” được sử dụng bởi $routeProvider để liên kết view và controller.
Cách sử dụng
Định nghĩa một khối script với kiểu như ng-template trong module chính.
...
Add Student
{{message}}
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 53
$routeProvider
Là dịch vụ chính trong việc tạo các cấu hình cho địa chỉ URL, liên kết chúng với trang HTML tương
ứng hoặc ng-template và gắn controller với chúng.
Cách sử dụng
Định nghĩa một khối script trong module chính và thiết lập cấu hình định tuyến.
var mainApp = angular.module("mainApp", ['ngRoute']);
mainApp.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/addStudent', {
templateUrl: 'addStudent.jsp',
controller: 'AddStudentController'
}).
when('/viewStudents', {
templateUrl: 'viewStudents.jsp',
controller: 'ViewStudentsController'
}).
otherwise({
redirectTo: '/addStudent'
});
}]);
Dưới đây là những điểm quan trọng cần xem xét từ ví dụ trên.
$routeProvider định nghĩa là một hàm dưới config của mainApp module sử dụng khóa là
“$routeProvider”.
$routeProvider.when định nghĩa một địa chỉ URL “/addStudent” được sử dụng để liên kết
đến trang “addStudent.jsp”, addStudent.jspl nên đặt chung thư mục đường dẫn với trang
HTML. Nếu trang HTML không được định nghĩa, ng-template sẽ sử dụng
id=”addStudent.jspl”. Chúng ta sử dụng ng-template.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 54
"otherwise" được sử dụng để thiết lập view mặc định.
"controller" được để thiết lập controller tương ứng với từng view.
Ví dụ
Dưới đây là ví dụ minh họa cho những directive mô tả bên trên.
testAngularJS.jsp
Angular JS Views
<script
src="">
<script src="
route.min.js">
AngularJS Sample Application
Add Student
View Students
Add Student
{{message}}
View Students
{{message}}
var mainApp = angular.module("mainApp", ['ngRoute']);
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 55
mainApp.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/addStudent', {
templateUrl: 'addStudent.jsp',
controller: 'AddStudentController'
}).
when('/viewStudents', {
templateUrl: 'viewStudents.jsp',
controller: 'ViewStudentsController'
}).
otherwise({
redirectTo: '/addStudent'
});
}]);
mainApp.controller('AddStudentController', function($scope) {
$scope.message = "This page will be used to display add student form";
});
mainApp.controller('ViewStudentsController', function($scope) {
$scope.message = "This page will be used to display all the students";
});
Kết quả
Mở trang textAngularJS.jsp trên trình duyệt web và bạn sẽ thấy kết quả sau.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 56
AngularJS - Scope
Scope là đối tượng JavaScript đặc biệt có vai trò liên kết controller và view. Scope chứa thông tin
là các dữ liệu model. Trong controller, dữ liệu model có thể được truy cập qua đối tượng $scope.
var mainApp = angular.module("mainApp", []);
mainApp.controller("shapeController", function($scope) {
$scope.message = "In shape controller";
$scope.type = "Shape";
});
Dưới đây là những điểm quan trọng của ví dụ trên.
$scope được truyền như là tham số đầu tiên của controller trong hàm khởi tạo của nó.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 57
$scope.message và $scope.type là các model được sử dụng trong trang HTML.
Chúng ta thiết lập các giá trị cho model và tác động lên Module ứng dụng với controller và
shapeController.
Chúng ta có thể định nghĩa các hàm với $scope.
Tính kế thừa của Scope
Scope là controller riêng biệt. Chúng ta định nghĩa nested controller (các controller lồng nhau) để
các controller con sẽ kế thừa từ các controller cha..
var mainApp = angular.module("mainApp", []);
mainApp.controller("shapeController", function($scope) {
$scope.message = "In shape controller";
$scope.type = "Shape";
});
mainApp.controller("circleController", function($scope) {
$scope.message = "In circle controller";
});
Dưới đây là những điểm chính qua ví dụ trên.
Chúng ta tạo giá trị biến model cho shapeController.
Chúng ta ghi đè thông báo của controller con circleController. Khi “message” được sử dụng
trong các module của circleController, giá trị message ghi đè sẽ được sử dụng.
Ví dụ
Dưới đây là phần ví dụ cho phần hướng dẫn bên trên.
testAngularJS.jsp
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 58
Angular JS Forms
AngularJS Sample Application
{{message}} {{type}}
{{message}} {{type}}
{{message}} {{type}}
<script
src="">
var mainApp = angular.module("mainApp", []);
mainApp.controller("shapeController", function($scope) {
$scope.message = "In shape controller";
$scope.type = "Shape";
});
mainApp.controller("circleController", function($scope) {
$scope.message = "In circle controller";
});
mainApp.controller("squareController", function($scope) {
$scope.message = "In square controller";
$scope.type = "Square";
});
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 59
Kết quả
Mở trang textAngularJS.jsp trên trình duyệt web. Và xem kết quả dưới đây.
Các Service trong AngularJS
AngularJS hỗ trợ các khái niệm "Seperation of Concerns - Chia để trị" sử dụng cấu trúc service.
Service là các hàm JavaScript và có nhiệm vụ trên những task nhất định. Nó làm cho chúng thành
những thực thể riêng rẽ dễ dàng trong việc bảo trì và kiểm thử. Controller, filter có thể gọi chúng
một cách đơn giản. Service thường được inject sử dụng cơ chếdependency injection của
AngularJS.
AngularJS cung cấp rất nhiều những service được định nghĩa cho trước:
$http,$scope,$route,$window,$locationMỗi một service có những nhiệm vụ nhất định. Ví dụ,
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 60
$http được sử dụng để tạo ra các ajax request lên server để lấy dữ liệu về. $route được sử dụng
để định nghĩa thông tin routing . Những service mặc định của AngularJS bắt đầu bởi biểu tượng
$.
Có 2 cách để tạo một service là:
factory
service
Sử dụng phương thức factory
Khi sử dụng factory method, đầu tiên chúng ta định nghĩa factory và gắn method cho nó.
var mainApp = angular.module("mainApp", []);
mainApp.factory('MathService', function() {
var factory = {};
factory.multiply = function(a, b) {
return a * b
}
return factory;
});
Sử dụng phương thức service
Sử dụng service method, chúng ta sẽ định nghĩa service sau đó gán method với nó. Chúng ta cũng
inject những service có sẵn cho nó.
mainApp.service('CalcService', function(MathService){
this.square = function(a) {
return MathService.multiply(a,a);
}
});
Ví dụ
Dưới đây là ví dụ minh họa cho chỉ dẫn bên trên.
testAngularJS.jsp
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 61
Angular JS Services
<script
src="">
AngularJS Sample Application
Enter a number:
X2
Result: {{result}}
var mainApp = angular.module("mainApp", []);
mainApp.factory('MathService', function() {
var factory = {};
factory.multiply = function(a, b) {
return a * b
}
return factory;
});
mainApp.service('CalcService', function(MathService){
this.square = function(a) {
return MathService.multiply(a,a);
}
});
mainApp.controller('CalcController', function($scope, CalcService) {
$scope.square = function() {
$scope.result = CalcService.square($scope.number);
}
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 62
});
Kết quả
Mở trang textAngularJS.jsp trên trình duyệt web và xem kết quả:
Dependency Injection trong AngularJS
Dependency Injection là một mô hình thiết kế phần mềm mà trong đó các thành phần được đưa ra
từ những phần phụ thuộc nó - dependencies thay cho việc hard coding chúng trong các thành
phần. Điều này làm cho cách thành phần phụ thuộc nhau trong phần cấu hình. Nó giúp việc làm có
các thành phần có tính tái sử dụng cao, dễ bảo dưỡng và kiểm thử.
AngularJS cung cấp kỹ thuật Dependency Injection, cho phép các thành phần lõi của AngularJS có
thể được inject tới các thành phần phụ thuộc khác.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 63
value
factory
service
provider
constant
value - giá trị
là đối tượng JavaScript đơn giản và được sử dụng để thiết lập các giá trị tới controller trong các
bước cấu hình.
//define a module
var mainApp = angular.module("mainApp", []);
//create a value object as "defaultInput" and pass it a data.
mainApp.value("defaultInput", 5);
...
//inject the value in the controller using its name "defaultInput"
mainApp.controller('CalcController', function($scope, CalcService, defaultInput) {
$scope.number = defaultInput;
$scope.result = CalcService.square($scope.number);
$scope.square = function() {
$scope.result = CalcService.square($scope.number);
}
});
factory
factory là một hàm để sử dụng trả về giá trị. Nó tạo ra giá trị theo yêu cầu mỗi khi service hoặc
controller yêu cầu. Ta thường dùng các hàm factory để tính và trả về giá trị.
//define a module
var mainApp = angular.module("mainApp", []);
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 64
//create a factory "MathService" which provides a method multiply to return multiplication of
two numbers
mainApp.factory('MathService', function() {
var factory = {};
factory.multiply = function(a, b) {
return a * b
}
return factory;
});
//inject the factory "MathService" in a service to utilize the multiply method of factory.
mainApp.service('CalcService', function(MathService){
this.square = function(a) {
return MathService.multiply(a,a);
}
});
...
service
service là một đối tượng singleton javascript chứa tập các hàm cho các mục đích cụ thể. Service
được định nghĩa sử dụng hàm service() và sau đó inject nó đến controller.
//define a module
var mainApp = angular.module("mainApp", []);
...
//create a service which defines a method square to return square of a number.
mainApp.service('CalcService', function(MathService){
this.square = function(a) {
return MathService.multiply(a,a);
}
});
//inject the service "CalcService" into the controller
mainApp.controller('CalcController', function($scope, CalcService, defaultInput) {
$scope.number = defaultInput;
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 65
$scope.result = CalcService.square($scope.number);
$scope.square = function() {
$scope.result = CalcService.square($scope.number);
}
});
provider
provider được sử dụng bởi trong nội bộ AngularJS để tạo service, factory trong quá trình cài đặt
(quá trình mà AngularJS khởi tạo chính nó). Dưới đây mô tả script có thể tạo MathService trong đó
chúng ta tạo trước đó. Provider là một phương thức factory đặc biệt với phương thức get() trả về
giá trị là value/service/factory.
//define a module
var mainApp = angular.module("mainApp", []);
...
//create a service using provider which defines a method square to return square of a number.
mainApp.config(function($provide) {
$provide.provider('MathService', function() {
this.$get = function() {
var factory = {};
factory.multiply = function(a, b) {
return a * b;
}
return factory;
};
});
});
constant
constants được sử dụng thể thiết lập các giá trị trong quá trình cài đặc và giá trị không được thiết
lập trong quá trình cài đặt.
mainApp.constant("configParam", "constant value");
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 66
Ví dụ
Dưới đây là ví dụ cho phần diễn giải bên trên:
testAngularJS.jsp
AngularJS Dependency Injection
AngularJS Sample Application
Enter a number:
X2
Result: {{result}}
<script
src="">
var mainApp = angular.module("mainApp", []);
mainApp.config(function($provide) {
$provide.provider('MathService', function() {
this.$get = function() {
var factory = {};
factory.multiply = function(a, b) {
return a * b;
}
return factory;
};
});
});
mainApp.value("defaultInput", 5);
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 67
mainApp.factory('MathService', function() {
var factory = {};
factory.multiply = function(a, b) {
return a * b;
}
return factory;
});
mainApp.service('CalcService', function(MathService){
this.square = function(a) {
return MathService.multiply(a,a);
}
});
mainApp.controller('CalcController', function($scope, CalcService, defaultInput) {
$scope.number = defaultInput;
$scope.result = CalcService.square($scope.number);
$scope.square = function() {
$scope.result = CalcService.square($scope.number);
}
});
Kết quả
Mở trang textAngularJS.jsp trên trình duyệt web và xem kết quả.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 68
Các Custom Directive trong AngularJS
Custom directive được sử dụng trong AngularJS kết thừa chức năng của HTML. Custom directive
được định nghĩa sử dụng hàm “directive”. Một custom directive đơn giản là thay thế những thành
phần cho nó được kích hoạt. Ứng dụng AngularJS trong quá trình khởi tạo tìm kiếm những thành
phần phù hợp và hoạt động một lần sử dụng phương thức compile()trong custom directive sau đó
sử dụng phương thức link() để tạo custom directive dựa vào scope của các directive. AngularJS
cung cấp cho chúng ta cách tạo custom directive theo những loại sau:
Element directives - Directive kích hoạt khi một thành phần trùng tên với nó gặp phải.
Attribute - Directive kích hoạt khi gặp phải một thuộc tính trùng với nó.
CSS - Directive kích hoạt khi gặp phải một css style trùng tên với nó.
Comment - Directive kích hoạt khi gặp phải một comment trùng với nó.
Tìm hiểu Custom Directive
Định nghĩa thẻ custom html.
Định nghĩa custom directive để xử lý thẻ custom HTML trên.
var mainApp = angular.module("mainApp", []);
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 69
//Create a directive, first parameter is the html element to be attached.
//We are attaching student html tag.
//This directive will be activated as soon as any student element is encountered in html
mainApp.directive('student', function() {
//define the directive object
var directive = {};
//restrict = E, signifies that directive is Element directive
directive.restrict = 'E';
//template replaces the complete element with its text.
directive.template = "Student: {{student.name}} , Roll No:
{{student.rollno}}";
//scope is used to distinguish each student element based on criteria.
directive.scope = {
student : "=name"
}
//compile is called during application initialization. AngularJS calls it once when html
page is loaded.
directive.compile = function(element, attributes) {
element.css("border", "1px solid #cccccc");
//linkFunction is linked with each element with scope to get the element specific
data.
var linkFunction = function($scope, element, attributes) {
element.jspl("Student: "+$scope.student.name +" , Roll No:
"+$scope.student.rollno+"");
element.css("background-color", "#ff00ff");
}
return linkFunction;
}
return directive;
});
Định nghĩa controller để cập nhật scope cho directive. Ở đây là các đặt tên các thuộc tính của biến
scope.
mainApp.controller('StudentController', function($scope) {
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 70
$scope.Mahesh = {};
$scope.Mahesh.name = "Mahesh Parashar";
$scope.Mahesh.rollno = 1;
$scope.Piyush = {};
$scope.Piyush.name = "Piyush Parashar";
$scope.Piyush.rollno = 2;
});
Ví dụ
Angular JS Custom Directives
AngularJS Sample Application
<script
src="">
var mainApp = angular.module("mainApp", []);
mainApp.directive('student', function() {
var directive = {};
directive.restrict = 'E';
directive.template = "Student: {{student.name}} , Roll No:
{{student.rollno}}";
directive.scope = {
student : "=name"
}
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 71
directive.compile = function(element, attributes) {
element.css("border", "1px solid #cccccc");
var linkFunction = function($scope, element, attributes) {
element.jspl("Student: "+$scope.student.name +" , Roll No:
"+$scope.student.rollno+"");
element.css("background-color", "#ff00ff");
}
return linkFunction;
}
return directive;
});
mainApp.controller('StudentController', function($scope) {
$scope.Mahesh = {};
$scope.Mahesh.name = "Mahesh Parashar";
$scope.Mahesh.rollno = 1;
$scope.Piyush = {};
$scope.Piyush.name = "Piyush Parashar";
$scope.Piyush.rollno = 2;
});
Kết quả
Mở trang textAngularJS.jsp trên trình duyệt web và xem kết quả.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 72
AngularJS - Các chức năng quốc tế hóa
AngularJS cung cấp sẵn các chức năng quốc tế hóa với 3 kiểu filter là currency, date và number.
Chúng ta chỉ cần kết hợp đoạn js tương ứng với theo vị trí tùy Quốc gia. Mặc định nó sẽ gắn với ví
trị trong trình duyệt web. Ví dụ, khi sử dụng ví trí ở Đan Mạch, bạn sử dụng đoạn script sau đây:
Ví dụ cho ví trị Đan Mạch
testAngularJS.jsp
Angular JS Forms
AngularJS Sample Application
{{fees | currency }}
{{admissiondate | date }}
{{rollno | number }}
<script
src="">
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 73
var mainApp = angular.module("mainApp", []);
mainApp.controller('StudentController', function($scope) {
$scope.fees = 100;
$scope.admissiondate = new Date();
$scope.rollno = 123.45;
});
Kết quả
Mở trang textAngularJS.jsp trong một trình duyệt web và xem kết quả.
Ví dụ sử dụng vị trí của Browser
testAngularJS.jsp
Angular JS Forms
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 74
AngularJS Sample Application
{{fees | currency }}
{{admissiondate | date }}
{{rollno | number }}
<script
src="">
-->
var mainApp = angular.module("mainApp", []);
mainApp.controller('StudentController', function($scope) {
$scope.fees = 100;
$scope.admissiondate = new Date();
$scope.rollno = 123.45;
});
Kết quả
Mở trang textAngularJS.jsp trong một trình duyệt web và xem kết quả.
Copyright © vietjack.com
Trang chia sẻ các bài học online miễn phí Page 75
AngularJS - Tài liệu tham khảo
Các tài liệu sau đây chứa các thông tin hữu ích về AngularJS. Bạn nên sử dụng chúng để nâng
cao kiến thức của mình cũng như hiểu các chủ đề trong loạt bài hướng dẫn này.
Các đường link hữu ích về AngularJS
Tutorialspoint − Loạt bài hướng dẫn của chúng tôi xây dựng dựa trên nguồn này.
AngularJS - Trang Web chính thức của AngularJS
AngularJS - Wiki - Tham khảo Wikipedia cho AngularJS.
Các file đính kèm theo tài liệu này:
- tai_lieu_angularjs_tieng_viet_6549.pdf