%%{init: {"theme": "base", "themeVariables": {"primaryColor": "#fabd2f", "primaryTextColor": "#282828", "primaryBorderColor": "#b57614", "lineColor": "#7c6f64", "secondaryColor": "#83a598", "tertiaryColor": "#b8bb26", "background": "#fbf1c7", "mainBkg": "#ebdbb2", "fontFamily": "Tahoma, sans-serif"}}}%% flowchart LR subgraph Era1["ยุคซ่อนด้วย CSS / CSS Toggle"] A["display:noneซ่อนด้วย style"] end subgraph Era2["ยุค Template Logic / Angular Directives"] B["*ngIfเพิ่ม/ลบ Element"] C["*ngForแสดงรายการ"] end subgraph Era3["ยุค UI State / State Driven UI"] D["ngClass/ngStyleเปลี่ยนหน้าตาตามสถานะ"] E["trackByเพิ่มประสิทธิภาพ"] end A --> B --> C --> D --> E
%%{init: {"theme": "base", "themeVariables": {"primaryColor": "#fabd2f", "primaryTextColor": "#282828", "primaryBorderColor": "#b57614", "lineColor": "#7c6f64", "secondaryColor": "#83a598", "tertiaryColor": "#b8bb26", "background": "#fbf1c7", "mainBkg": "#ebdbb2", "fontFamily": "Tahoma, sans-serif"}}}%% flowchart TD A["ต้องควบคุม Template?Need template control?"] --> B{"เงื่อนไขเดียว?Single condition?"} B -->|ใช่ / Yes| C["ใช้ *ngIfConditional render"] B -->|ไม่ใช่ / No| D{"เป็นรายการ?List?"} D -->|ใช่ / Yes| E["ใช้ *ngFor + trackByList render"] D -->|ไม่ใช่ / No| F["ใช้ ngClass/ngStyleVisual state"]
กำลังโหลดข้อมูล...