Now.js Framework Documentation
TemplateManager - คู่มืออ้างอิง Directives
TemplateManager - คู่มืออ้างอิง Directives
ภาพรวม
TemplateManager เป็น template engine หลักของ Now.js Framework ที่มอบความสามารถในการ data-binding และ reactive rendering ผ่าน HTML data attributes
ความสามารถหลัก:
- 🔗 Data Binding - เชื่อมข้อมูลกับ text, attributes และ classes
- 🔄 Reactive Updates - อัพเดท UI อัตโนมัติเมื่อข้อมูลเปลี่ยน
- 📋 List Rendering - แสดงผลรายการด้วย
data-for - 🎯 Event Handling - จัดการ events แบบ declarative พร้อม modifiers
- 🧩 Dynamic Components - โหลด components ตามต้องการ
อ้างอิงด่วน
Data Binding Directives
| Directive | หน้าที่ | ตัวอย่าง |
|---|---|---|
data-text |
แสดงข้อความ | data-text="user.name" |
data-html |
แสดง HTML | data-html="article.content" |
data-attr |
กำหนด attributes | data-attr="href:link, title:tooltip" |
data-class |
สลับ CSS classes | data-class="active:isActive" |
data-style |
กำหนด inline styles | data-style="color:textColor" |
Control Flow Directives
| Directive | หน้าที่ | ตัวอย่าง |
|---|---|---|
data-if |
แสดงผลแบบมีเงื่อนไข | data-if="user.isLoggedIn" |
data-for |
วนลูปแสดงรายการ | data-for="item in items" |
Form & Input Directives
| Directive | หน้าที่ | ตัวอย่าง |
|---|---|---|
data-model |
Two-way binding | data-model="form.username" |
data-checked |
สถานะ checkbox/radio | data-checked="options.enabled" |
Event & Component Directives
| Directive | หน้าที่ | ตัวอย่าง |
|---|---|---|
data-on |
จัดการ events | data-on="click:handleClick" |
data-container |
โหลด components แบบ dynamic | data-container="currentView" |
data-script |
เรียกฟังก์ชันเริ่มต้น | data-script="initPage" |
Syntax การเข้าถึงข้อมูล
การเข้าถึงข้อมูลพื้นฐาน
<!-- property ธรรมดา -->
<span data-text="username"></span>
<!-- property แบบซ้อน -->
<span data-text="user.profile.name"></span>
<!-- เข้าถึง array -->
<span data-text="items[0].name"></span>กับ Context Variables
<!-- ใน data-for loops -->
<div data-for="item in items">
<span data-text="item.name"></span>
<span data-text="index"></span>
</div>Template Interpolation
<!-- inline expressions -->
<p>สวัสดี {{ user.name }}!</p>
<p>รวม: {{ cart.items.length }} รายการ</p>รูปแบบการใช้งานที่พบบ่อย
แสดงข้อมูลผู้ใช้
<div class="user-card">
<h2 data-text="user.name"></h2>
<p data-text="user.email"></p>
<img data-attr="src:user.avatar, alt:user.name">
</div>แสดงผลแบบมีเงื่อนไข
<div data-if="user.isLoggedIn">
<p>ยินดีต้อนรับ <span data-text="user.name"></span>!</p>
</div>
<div data-if="!user.isLoggedIn">
<a href="/login">กรุณาเข้าสู่ระบบ</a>
</div>รายการแบบ Dynamic
<ul data-for="item in menuItems">
<template>
<li>
<a data-attr="href:item.url" data-text="item.label"></a>
</li>
</template>
</ul>Form Binding
<form data-form="contact">
<input type="text" data-model="form.name" placeholder="ชื่อ">
<input type="email" data-model="form.email" placeholder="อีเมล">
<textarea data-model="form.message"></textarea>
<button data-on="click:submitForm">ส่ง</button>
</form>เอกสารฉบับละเอียด
สำหรับเอกสารฉบับสมบูรณ์ของแต่ละ directive ดูที่:
- แนวคิดหลัก - สถาปัตยกรรมและการเริ่มต้น
- data-text - Text binding พร้อม formatters
- data-html - HTML rendering และ sanitization
- data-attr - Attribute binding
- data-class - โหมดการ binding classes
- data-style - Style binding
- data-if - Conditional rendering
- data-for - List rendering
- data-on - Event handling
- data-model - Two-way binding
- data-checked - Checkbox/radio binding
- data-container - Dynamic components
- data-script - Script initialization
ที่เกี่ยวข้อง
- RouterManager - จัดการ routes
- FormManager - ประมวลผลฟอร์ม
- ComponentManager - ระบบ components