<input type="text" [value]="value" #name>
1. ตัวแปรอ้างอิงเทมเพลตสามารถเป็นองค์ประกอบ DOM, ส่วนประกอบเชิงมุม (คำสั่ง), องค์ประกอบ, TemplateRef หรือแม้แต่การอ้างอิงไปยังองค์ประกอบเว็บใน Angualr template และมีความเฉพาะเจาะจง มันขึ้นอยู่กับองค์ประกอบที่แนบมาด้วย (โดยไม่มีการแทรกแซงโดยใช้คำสั่ง) เช่นเดียวกับโค้ดตัวอย่างก่อนหน้านี้ name
ตัวแปรอ้างอิงเทมเพลตคือการอ้างอิงไปยังองค์ประกอบ DOM <input>
[คำแนะนำบทช่วยสอนที่เกี่ยวข้อง: "บทช่วยสอนเชิงมุม"]
<app-component #component [input]="variable"></app-component> {{ ส่วนประกอบอินพุต }} {{ Component.func() }}
เราได้รับการอ้างอิง อินสแตนซ์ ของ app-component
ซึ่งช่วยให้เราเข้าถึงสมาชิกภายในส่วนประกอบ app-component
ในเทมเพลตได้อย่างง่ายดายผ่านตัวแปรอ้างอิงเทมเพลต
2. Angular กำหนดค่าให้กับตัวแปรเทมเพลตตามตำแหน่งของตัวแปรที่คุณประกาศ:
หากคุณประกาศตัวแปรบนส่วนประกอบ ตัวแปรจะอ้างอิงถึงอินสแตนซ์ของส่วนประกอบ
หากคุณประกาศตัวแปรบนมาร์กอัป HTML มาตรฐาน ตัวแปรจะอ้างอิงถึงองค์ประกอบนั้น
หากคุณประกาศตัวแปรในองค์ประกอบ <ng-template>
ตัวแปรจะอ้างอิงอินสแตนซ์ TemplateRef
เพื่อแสดงเทมเพลต
หากตัวแปรระบุชื่อทางด้านขวา เช่น #var="ngModel"
ตัวแปรจะอ้างอิงถึงคำสั่งหรือส่วนประกอบที่มีชื่อ exportAs
บนองค์ประกอบ
3. การใช้ NgForm
กับตัวแปรเทมเพลต <br/> คำสั่ง NgForm
ที่นี่สาธิตวิธีการอ้างอิงค่าที่แตกต่างกันโดยการอ้างอิงชื่อ exportAs
ของคำสั่ง ในตัวอย่างต่อไปนี้ ตัวแปรเทมเพลต itemForm
ปรากฏสามครั้งใน HTML
<form #itemForm="ngForm" (ngSubmit)="onSubmit(itemForm)"> <label for="name">ชื่อ</label> <input type="text" id="name" class="form-control" name="name" ngModel จำเป็น /> <button type="submit">ส่ง</button> </แบบฟอร์ม> <div [hidden]="!itemForm.form.valid"> <p>{{ ส่งข้อความ }}</p> </div>
* หากไม่มีค่าแอตทริบิวต์ ngForm ค่าที่อ้างอิงโดย itemForm จะเป็นองค์ประกอบ <form>
Com 和
Directive
之间的差异在于Angular 在没有指定属性值的情况下,Angular 会引用Component
,而Directive
不会改变这种隐式引用(即它的宿主元素)。(还没读懂什么意思.......
และหลังจากใช้ NgForm
แล้ว itemForm
จะเป็นการอ้างอิงถึงคำสั่ง NgForm คุณสามารถใช้มันเพื่อติดตามค่าและความถูกต้องของตัวควบคุมแต่ละรายการในแบบฟอร์ม
เปรียบเทียบกับ Native <form>
องค์ประกอบที่แตกต่างกัน คำสั่ง NgForm
มีแอตทริบิวต์ของ form
หาก itemForm.form.valid
ไม่ถูกต้อง ดังนั้นแอตทริบิวต์ form
ของ NgForm
จะให้คุณปิดการใช้งานปุ่มส่ง
ที่จริงแล้ว เมื่อใช้เชิงมุมเพื่อเขียนหน้ารายการ ตัวแปรอ้างอิงเทมเพลตมักจะเป็นเช่นนั้น ใช้แล้ว:
อ้างอิงเมธอดExecuteQuery()ของ ngxQuery ในกล่องอินพุตของส่วนประกอบรายการ แน่นอนว่าหากเราต้องการใช้ตัวแปรอ้างอิงเทมเพลตใน ts เราต้องใช้ @ViewChild และ @ViewChildren ซึ่งเป็นตัวตกแต่งที่ Angular มอบให้เรา
เราได้รับส่วนประกอบ ngxQuery ผ่านชื่อตัวแปรเทมเพลตใน ts:
ใน ts คุณสามารถเรียกใช้เมธอด ExecuteQuery() ของ ngxQuery ได้โดยตรง และรีเฟรชรายการเมื่อมีการส่งพารามิเตอร์:
(สามารถดูเนื้อหาที่เกี่ยวข้องเกี่ยวกับมัณฑนากร ViewChild ได้ที่นี่******)
สำหรับส่วนประกอบหลักและลูก สามารถใช้ตัวแปรอ้างอิงเทมเพลตได้โดยตรง:
buGroup คืออาร์เรย์ใน bugroupSelectComponent ซึ่งถูกส่งผ่านเป็นตัวแปรอ้างอิงเทมเพลตผ่านทาง องค์ประกอบหลักและลูกมา:
รับค่าขององค์ประกอบลูกในองค์ประกอบหลัก ts และใช้: