โมดูล AngularJS
โมดูล AngularJS กำหนดแอปพลิเคชัน
โมดูลนี้เป็นคอนเทนเนอร์สำหรับส่วนต่างๆ ของแอปพลิเคชัน
โมดูลนี้เป็นคอนเทนเนอร์สำหรับตัวควบคุมแอปพลิเคชัน
ตัวควบคุมจะเป็นของโมดูลเสมอ
การสร้างโมดูล
โมดูลถูกสร้างขึ้นโดยใช้ฟังก์ชัน AngularJSangular.module
<div ng-app="myApp">...</div>
<script>
var app = angular.module("myApp", []);
</script>
พารามิเตอร์ "myApp" หมายถึงองค์ประกอบ HTML ที่แอปพลิเคชันจะทำงาน
ตอนนี้คุณสามารถเพิ่มตัวควบคุม คำสั่ง ตัวกรอง และอื่นๆ ลงในแอปพลิเคชัน AngularJS ของคุณได้
การเพิ่มคอนโทรลเลอร์
เพิ่มคอนโทรลเลอร์ในแอปพลิเคชันของคุณ และอ้างถึงคอนโทรลเลอร์ด้วย
ng-controller
คำสั่ง:
ตัวอย่าง
<div ng-app="myApp" ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div>
<script>
var
app
= angular.module("myApp",
[]);
app.controller("myCtrl", function($scope) {
$scope.firstName
= "John";
$scope.lastName
= "Doe";
});
</script>
คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับคอนโทรลเลอร์ในบทช่วยสอนนี้
การเพิ่มคำสั่ง
AngularJS มีชุดคำสั่งในตัวซึ่งคุณสามารถใช้เพื่อเพิ่มฟังก์ชันการทำงานให้กับแอปพลิเคชันของคุณ
สำหรับข้อมูลอ้างอิงทั้งหมด ไปที่ การอ้างอิงคำสั่ง AngularJSของ เรา
นอกจากนี้ คุณสามารถใช้โมดูลเพื่อเพิ่มคำสั่งของคุณเองในแอปพลิเคชันของคุณ:
ตัวอย่าง
<div ng-app="myApp" w3-test-directive></div>
<script>
var app =
angular.module("myApp", []);
app.directive("w3TestDirective",
function() {
return {
template : "I was made in a directive constructor!"
};
});
</script>
คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับคำสั่งต่างๆ ในภายหลังในบทช่วยสอนนี้
โมดูลและตัวควบคุมในไฟล์
เป็นเรื่องปกติในแอปพลิเคชัน AngularJS ที่จะวางโมดูลและตัวควบคุมไว้ในไฟล์ JavaScript
ในตัวอย่างนี้ "myApp.js" มีคำจำกัดความโมดูลแอปพลิเคชัน ในขณะที่ "myCtrl.js" มีตัวควบคุม:
ตัวอย่าง
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<body>
<div ng-app="myApp"
ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div>
<script src="myApp.js"></script>
<script src="myCtrl.js"></script>
</body>
</html>
myApp.js
var app = angular.module("myApp", []);
พารามิเตอร์ [] ในคำจำกัดความของโมดูลสามารถใช้เพื่อกำหนดโมดูลที่ขึ้นต่อกัน
หากไม่มีพารามิเตอร์ [] คุณจะไม่ได้สร้างโมดูลใหม่ แต่ กำลัง ดึง โมดูล ที่มีอยู่
myCtrl.js
app.controller("myCtrl", function($scope) {
$scope.firstName = "John";
$scope.lastName= "Doe";
});
ฟังก์ชั่นสามารถก่อให้เกิดมลพิษในเนมสเปซส่วนกลาง
ควรหลีกเลี่ยงฟังก์ชันส่วนกลางใน JavaScript สามารถเขียนทับหรือทำลายโดยสคริปต์อื่นได้อย่างง่ายดาย
โมดูล AngularJS ช่วยลดปัญหานี้โดยการรักษาฟังก์ชันทั้งหมดไว้ในโมดูล
เมื่อใดควรโหลดห้องสมุด
แม้ว่าจะเป็นเรื่องปกติในแอปพลิเคชัน HTML ที่จะวางสคริปต์ไว้ที่ส่วนท้ายของ
<body>
องค์ประกอบ ขอแนะนำให้คุณโหลดไลบรารี AngularJS ใน<head>
หรือที่จุดเริ่มต้นของ<body>
.
นี่เป็นเพราะการเรียกangular.module
สามารถคอมไพล์ได้หลังจากโหลดไลบรารีแล้วเท่านั้น
ตัวอย่าง
<!DOCTYPE html>
<html>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<div ng-app="myApp"
ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div>
<script>
var app = angular.module("myApp",
[]);
app.controller("myCtrl", function($scope) {
$scope.firstName
= "John";
$scope.lastName
= "Doe";
});
</script>
</body>
</html>