[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

<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 $scope riê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é.

Hãy để lại link bài viết gốc khi chia sẻ bài viết này, mình sẽ report DMCA với những website lấy nội dung mà không để nguồn hoặc copy bài với số lượng lớn.

Nguồn: freetuts.net

Profile photo of adminTheHalfHeart

TheHalfHeart

Có sở thích viết tuts nên đã từng tham gia viết ở một số diễn đàn, đến năm 2014 mới có điều kiện sáng lập ra freetuts.net. Sinh năm 90 và có 1 vợ 2 con, thích ca hát và lập trình.

ĐĂNG BÌNH LUẬN: Đăng câu hỏi trên Facebook để được hỗ trợ nhanh nhất.