هنگام کار با ورودی های مورد نیاز توی یک فرم، گاهی اوقات ممکنه کاربر فراموش کنه که یک ورودی مورد نیاز فرم رو پ ر کنه، و وقتی روی دکمه‌ی ثبت نهایی فرم کلیک میکنه، هیچ اتفاقی نمیوفته. این میتونه برای کاربر کمی گیج‌کننده باشه که برای ادامه، باید چیکار کنه! به کمک فرم‌های انگولار، ما میتونیم به کاربر کمک کنیم تا وقتی فرم رو میخواد ثبت کنه، روی اولین اینپوتی که خطا داره فوکوس کنیم تا سریعتر بتونه به کارش ادامه بده. ما داریم از برای ایجاد فرم و سرویس برای منطق فرممون استفاده می‌کنیم. برای اضافه کردن منطق فوکوس روی اولین اینپوتی که خطا داره، هنگامی که کاربر فرم رو میخواد سابمیت کنه، یک دایرکتیو ایزوله ( می‌سازیم. اسم این دایرکتیو رو میذاریم ( وقتی این دایرکتیو رو بذاریم رو فرممون، منتظر میمونه تا کاربر فرم رو سابمیت کنه و وقتی رویداد ( Event ) سابمیت رخ داد، میفهمه که باید در صورت وجود خطا، روی اولین اینپوتی که خطا داره فوکوس کنه. (چه باهوش! برای اینکه دایرکتیو ما تشخیص بده که ک ی رویداد سابمیت رخ داده، می‌تونیم از استفاده کنیم تا متد مد نظر خودمون ( رو همون موقع اجرا کنیم. وقتی ما یه رویداد داریم، می‌تونیم چک کنیم ببینیم شامل یک ورودی نامعتبر هست یا نه. یک راه آسون واسه اینکار اینه که چک کنیم آیا المنتی وجود داره که شامل سلکتور باشه یا نه. (تو فرم‌های انگولاری هر اینپوتی که خطا داشته باشه، انگولار بهش کلاس رو میده) برای بررسی تمپلیت ( Template ) فرممون، می‌تونیم سرویس رو به دایرکتیومون تزریق ( کنیم و با استفاده از اون به فرم دسترسی داشته باشیم. به وسیله این کد ( میتونیم اولین اینپوتی که کلاس رو داره پیدا کنیم (اگه همشو میخواید باید از استفاده کنید) و روش فوکوس کنیم: اگه دارید از اینپوت های متریال استفاده می‌کنید، باید این سلکتور رو بذارید: بعد از اینکه این دایرکتیو رو ساختیم، حالا باید سلکتور اون رو به فرممون اضافه کنیم تا جوری که میخوایم، رفتار کنه. امیدوارم از این یادداشت خوشتون اومده باشه: )