[Học AngularJS] - Bài 04 - $scope
$scope là một đối tượng cầu nối lưu trữ dữ liệu, hay có thể hiểu nó là một kho dữ liệu và các đối tượng khác như Controller, Service sẽ sử dụng và trao đổi thông tin thông qua nó.

Ở bài trước tôi có nhắc là khi chúng ta khai báo một controller bên HTML thì bắt buộc phải khai báo với angular bằng javascript nữa. Thứ hai là một ứng dụng có thể có nhiều controller, các bạn lưu ý điểm này để viết chương trình bị lỗi còn biết đường sửa nhé.
# Khai báo data $sope trong controller
File index.html
Bài viết này được đăng tại [free tuts .net]
<body ng-app="myApp">
<div ng-controller="Controller1">
</div>
<div ng-controller="Controller2">
</div>
</body>File app.js
myApp = angular.module('myApp', []);
myApp.controller("Controller1", function($scope){
$scope.message = 'Chào mừng các bạn đến với freetuts.net';
});
myApp.controller("Controller2", function($scope){
$scope.message = 'Học lập trình online freetuts.net';
});
# Sử dụng data của $scope
Bây giờ ta sử dụng hai giá trị message của $scope trong 2 controller trong view.
File index.html
<body ng-app="myApp">
<div ng-controller="Controller1">
{{message}}
</div>
<div ng-controller="Controller2">
{{message}}
</div>
</body>Chạy lên các bạn sẽ thấy hai dòng dữ liệu xuất hiện.
# Sử dụng ng-model với $scope
Bây giờ bạn chỉnh file index.html một chút xíu như sau:
File index.html
<body ng-app="myApp">
<div ng-controller="Controller1">
<input type="text" ng-model="message"/>
{{message}}
</div>
<div ng-controller="Controller2">
<input type="text" ng-model="message"/>
{{message}}
</div>
</body>
Chạy lên và bạn nhập dữ liệu vào 2 ô input bạn sẽ thấy nó tự động xuất hiện trên màn hình. Lý do là directive ng-model sẽ gán dữ liệu qua $scope.message nên cú pháp {{message}} sẽ in giá trị của $scope.message (message là tên của model)
# Summary
Từ ví dụ trên ta có kết luận như sau:
- Mỗi controller sẽ có một
$scoperiêng biệt - Trong view của mỗi controller có thể sử dụng giá trị của $scope thông qua cú pháp
{{tên gía trị}}
Trong thực tế giữa hai controller có thể trao đổi data với nhau và chúng ta sẽ tìm hiểu chủ đề này sau nhé.

Các hàm xử lý chuỗi trong Javascript (cắt / tách / nối chuỗi ..)
Chia lấy phần dư / chia lấy phần nguyên trong javascript
Các cách khai báo biến trong Javascript
Các sự kiện (Event) trong Javascript
Hướng tạo thanh search bar bằng CSS
Hàm array.slice() trong Javascript
Tính tổng hai số bằng Javascript (cộng hai số)
Cách khai báo biến trong PHP, các loại biến thường gặp
Download và cài đặt Vertrigo Server
Thẻ li trong HTML
Thẻ article trong HTML5
Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên
Cách dùng thẻ img trong HTML và các thuộc tính của img
Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng