คำสั่ง AngularJS
AngularJS ให้คุณขยาย HTML ด้วยแอตทริบิวต์ใหม่ที่เรียกว่า Directives
AngularJS มีชุดคำสั่งในตัวซึ่งมีฟังก์ชันการทำงานกับแอปพลิเคชันของคุณ
AngularJS ยังให้คุณกำหนดคำสั่งของคุณเองได้
คำสั่ง AngularJS
คำสั่ง AngularJS เป็นแอตทริบิวต์ HTML แบบขยายที่มีคำนำng-
หน้า
คำng-app
สั่งเริ่มต้นแอปพลิเคชัน AngularJS
คำng-init
สั่งเริ่มต้นข้อมูลแอปพลิเคชัน
คำng-model
สั่งผูกค่าของการควบคุม HTML (อินพุต, เลือก, textarea) กับข้อมูลแอปพลิเคชัน
อ่านเกี่ยวกับคำสั่ง AngularJS ทั้งหมดในการอ้างอิงคำสั่ง AngularJSของ เรา
ตัวอย่าง
<div ng-app="" ng-init="firstName='John'">
<p>Name: <input type="text" ng-model="firstName"></p>
<p>You wrote: {{ firstName }}</p>
</div>
คำng-app
สั่งยังบอก AngularJS ว่า <div> องค์ประกอบคือ "เจ้าของ" ของแอปพลิเคชัน AngularJS
การผูกข้อมูล
ในตัวอย่างข้าง ต้น{{ firstName }}
นิพจน์คือนิพจน์การโยงข้อมูล AngularJS
การโยงข้อมูลใน AngularJS ผูกนิพจน์ AngularJS กับข้อมูล AngularJS
{{ firstName }}
ถูกผูกไว้ng-model="firstName"
กับ
ในตัวอย่างถัดไป ฟิลด์ข้อความสองฟิลด์ถูกผูกไว้กับคำสั่ง ng-model สองคำสั่ง:
ตัวอย่าง
<div ng-app="" ng-init="quantity=1;price=5">
Quantity: <input type="number" ng-model="quantity">
Costs: <input type="number" ng-model="price">
Total in dollar: {{ quantity * price }}
</div>
การใช้ng-init
งานไม่ธรรมดามาก คุณจะได้เรียนรู้วิธีเริ่มต้นข้อมูลในบทเกี่ยวกับตัวควบคุม
องค์ประกอบ HTML ซ้ำ
คำng-repeat
สั่งทำซ้ำองค์ประกอบ HTML:
ตัวอย่าง
<div ng-app="" ng-init="names=['Jani','Hege','Kai']">
<ul>
<li ng-repeat="x in names">
{{ x }}
</li>
</ul>
</div>
ไดng-repeat
เร็กทีฟจะลอกแบบองค์ประกอบ HTML
หนึ่งครั้งสำหรับแต่ละรายการในคอลเล็กชัน
คำng-repeat
สั่งที่ใช้กับอาร์เรย์ของวัตถุ:
ตัวอย่าง
<div ng-app="" ng-init="names=[
{name:'Jani',country:'Norway'},
{name:'Hege',country:'Sweden'},
{name:'Kai',country:'Denmark'}]">
<ul>
<li ng-repeat="x in names">
{{ x.name + ', ' + x.country }}
</li>
</ul>
</div>
AngularJS เหมาะอย่างยิ่งสำหรับแอปพลิเคชันฐานข้อมูล CRUD (สร้างการอ่านอัปเดตลบ)
ลองนึกภาพว่าวัตถุเหล่านี้เป็นบันทึกจากฐานข้อมูลหรือไม่
คำสั่งในแอป
คำng-app
สั่งกำหนดองค์ประกอบรากของแอปพลิเคชัน AngularJS
คำng-app
สั่งจะบูตสแตรปอัตโนมัติ (เริ่มต้นโดยอัตโนมัติ) แอปพลิเคชันเมื่อโหลดหน้าเว็บ
คำสั่งความร้อน
คำng-init
สั่งกำหนดค่าเริ่มต้นสำหรับแอปพลิเคชัน AngularJS
โดยปกติ คุณจะไม่ใช้ ng-init คุณจะใช้คอนโทรลเลอร์หรือโมดูลแทน
คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับคอนโทรลเลอร์และโมดูลในภายหลัง
คำสั่งการสร้างแบบจำลอง
คำng-model
สั่งผูกค่าของการควบคุม HTML (อินพุต, เลือก, textarea) กับข้อมูลแอปพลิเคชัน
คำng-model
สั่งนี้ยังสามารถ:
- ให้การตรวจสอบประเภทข้อมูลแอปพลิเคชัน (หมายเลข อีเมล จำเป็น)
- ระบุสถานะสำหรับข้อมูลแอปพลิเคชัน (ไม่ถูกต้อง สกปรก แตะต้อง ผิดพลาด)
- จัดเตรียมคลาส CSS สำหรับองค์ประกอบ HTML
- ผูกองค์ประกอบ HTML กับรูปแบบ HTML
อ่านเพิ่มเติมเกี่ยวกับng-model
คำสั่งในบทต่อไป
สร้างคำสั่งใหม่
นอกเหนือจากคำสั่ง AngularJS ในตัวทั้งหมดแล้ว คุณสามารถสร้างคำสั่งของคุณเองได้
คำสั่งใหม่ถูกสร้างขึ้นโดยใช้.directive
ฟังก์ชัน
หากต้องการเรียกใช้คำสั่งใหม่ ให้สร้างองค์ประกอบ HTML ที่มีชื่อแท็กเดียวกันกับคำสั่งใหม่
เมื่อตั้งชื่อ directive คุณต้องใช้ชื่อเคสอูฐ
w3TestDirective
แต่เมื่อเรียกใช้ คุณต้อง-
แยกชื่อw3-test-directive
:
ตัวอย่าง
<body ng-app="myApp">
<w3-test-directive></w3-test-directive>
<script>
var app = angular.module("myApp", []);
app.directive("w3TestDirective",
function() {
return {
template : "<h1>Made by a directive!</h1>"
};
});
</script>
</body>
คุณสามารถเรียกใช้คำสั่งโดยใช้:
- ชื่อองค์ประกอบ
- คุณลักษณะ
- ระดับ
- ความคิดเห็น
ตัวอย่างด้านล่างทั้งหมดจะให้ผลลัพธ์เดียวกัน:
ชื่อองค์ประกอบ
<w3-test-directive></w3-test-directive>
คุณลักษณะ
<div w3-test-directive></div>
ระดับ
<div class="w3-test-directive"></div>
ความคิดเห็น
<!-- directive: w3-test-directive -->
ข้อ จำกัด
คุณสามารถจำกัดคำสั่งของคุณให้ถูกเรียกใช้โดยวิธีการบางอย่างเท่านั้น
ตัวอย่าง
โดยการเพิ่มrestrict
คุณสมบัติที่มีค่า"A"
คำสั่งสามารถเรียกใช้โดยแอตทริบิวต์เท่านั้น:
var app = angular.module("myApp", []);
app.directive("w3TestDirective",
function() {
return {
restrict : "A",
template : "<h1>Made by a directive!</h1>"
};
});
ค่าจำกัดทางกฎหมายคือ:
E
สำหรับชื่อองค์ประกอบA
สำหรับแอตทริบิวต์C
สำหรับชั้นเรียนM
สำหรับความคิดเห็น
โดยค่าเริ่มต้น ค่าคือEA
หมายความว่าทั้งชื่อองค์ประกอบและชื่อแอตทริบิวต์สามารถเรียกใช้คำสั่งได้