ขออภัยถ้านี่ได้รับคำตอบแล้วที่นี่ แต่ฉันไม่พบสิ่งที่ตรงกันสำหรับสถานการณ์เฉพาะของเราดังนั้นที่นี่จะไป!
เราได้พูดคุยกันในทีมพัฒนาของเราเกี่ยวกับการเรียกใช้ฟังก์ชันในเทมเพลตเชิงมุม ตอนนี้ตามกฎทั่วไปแล้วเรายอมรับว่าคุณไม่ควรทำสิ่งนี้ อย่างไรก็ตามเราได้พยายามที่จะพูดคุยเมื่อมันอาจจะไม่เป็นไร ผมขอยกสถานการณ์ให้คุณ
สมมติว่าเรามีบล็อกเทมเพลตที่ล้อมรอบด้วย ngIf ซึ่งจะตรวจสอบพารามิเตอร์หลายรายการเช่นที่นี่:
<ng-template *ngIf="user && user.name && isAuthorized">
...
</ng-template>
จะมีความแตกต่างอย่างมีนัยสำคัญในประสิทธิภาพเมื่อเทียบกับสิ่งนี้:
แม่แบบ:
<ng-template *ngIf="userCheck()">
...
</ng-template>
typescript:
userCheck(): boolean {
return this.user && this.user.name && this.isAuthorized;
}
ดังนั้นเพื่อสรุปคำถามตัวเลือกสุดท้ายจะมีต้นทุนด้านประสิทธิภาพที่สำคัญหรือไม่
เราต้องการใช้วิธีที่ 2 ในสถานการณ์ที่เราต้องตรวจสอบมากกว่า 2 เงื่อนไข แต่บทความออนไลน์จำนวนมากกล่าวว่าการเรียกใช้ฟังก์ชันไม่ดีเสมอในเทมเพลต แต่เป็นปัญหาจริงหรือไม่ในกรณีนี้