• 1400/02/05

پارس جیسون :

با سلام . من به یه مشکلی برخوردم که از این قراره:

فرض کنید از سمت سرور یک جیسون میاد که مثلا داخلش یک آبجکت car هست شامل id , title  و یک آبجکت type هم هست که داخل آبجکت type نوع ماشین نوشته شده که اون هم شامل id , title هست.

حالا اگه بخوام داخل صفحه نوع ماشین رو نشون بدم قاعدتا باید بنویسم    car.type.title 

حالا فرض کنید بعضی موقع ها car میاد ولی آبجکت ‌type که باید داخلش باشه فرستاده نمیشه . پس در نتیجه صفحه من رندر نمیشه و کل ui رو نشون نمیده و پیغام کنسول هم میگه Cannot read property 'type' of undefined"

من چه جوری باید این مشکل رو حل کنم تا وقتی type فرستاده نشد با خطا مواجه نشم.

یک راه که به ذهنم رسیده این هست که یک مدلی از این car بسازم و هروقت جواب از سمت سرور اومد ,جیسون رو بدم به این مدل . که نمیدونم این کار شدنی هست یا نه ؟

اگه میشه راهنمایی کنید ممنون

  • 1400/02/09
  • ساعت 09:52

سلام دوست من

null بودن type رو قبل از فراخوانی چک کنین. معمولا از علامت سوال استفاده میشه به این صورت :

car?.type.title

  • 1400/02/09
  • ساعت 13:31

خب ببینید یه مشکل دیگه پیش میاد . فرض کنید یه فرم داریم مثلا ثبت مشخصات ماشین که باید نام و نوع ماشین یعنی همون آبجکت type رو وارد کنیم. از همین فرم برای ویرایش ماشین هم استفاده میشه. چون اول که کامپوننت میخواد اجرا شه اگر برای ویرایش بیایم یک ریکویست به سمت سرور میدیم و car رو دریافت میکنیم . v-model مربوط به این input باید نوشته شه car.type.title. برای ویرایش مشکلی نیست ولی موقع ثبت ماشین جدید چون آبجکت car وجود نداره و به طبع اون داخلش هم آبجکت type نیست اینجا به مشکل میخورم. این مشکل رو چه جوری یاید حل کرد .جواب شما رو هم یعنی (car?.type.title) رو نمیشه داخل v-model نوشت چون خطا میده


logo-samandehi