سید رضا موسوی
4 سال پیش توسط سید رضا موسوی مطرح شد
1 پاسخ

بایند کردن در radioButton

سلام
تفاوت ngValue با ngModel در انگولار چیست؟


<input type="radio" ng-model="color.name" value="red"  ng-value="specialValue" />

آنگولار
تگ‌های محبوب
لاراول
php
laravel
متفرقه
reactjs
عمومی
html_css
nodejs
vuejs
وردپرس
پایتون
css
فلاتر
react
javascript
ثبت پرسش جدید
سید محمد حسین موسوی
تخصص : FullStack Developer
@SeyedMH.Mosavi 4 سال پیش آپدیت شد
0

فرض کن یه همچین چیزی داری:

$scope.instructor = {
    isActive: true,
    course: 'chemistry'
};

و دوتا input هم تو صفحه داری به این صورت:

<input type="radio" name="course" value="physics" ng-model="instructor.course"/> Physics
<input type="radio" name="course" value="chemistry" ng-model="instructor.course"/>  Chemistry

اگر امتحانش کنی متوجه می شی که اگر مقدار value برابر با ng-model باشه، اون radio انتخاب می شه. منطقش می شه مثل کد زیر:
if value == ng-mode => radio checked

حالا اگر همچین کدی رو تست کنیم:

<input type="radio" name="status" value="true" ng-model="instructor.isActive"/> Active
<input type="radio" name="status" value="false" ng-model="instructor.isActive"/>  Inactive

اینجا هم انتظار داریم که radio اول انتخاب بشه چون مقدار value برابر با "true" هست و ng-model ما هم در اولی مقدار true رو بر می گردونه. ولی جرا مثل مثال قبلی کار نمی کنه؟
به خاطر اینه که مقداری که ng-model داره برمی گردونه با مقدار value نوعشون متفاوته! یعنی نوع value بصورت string هست ولی model بصورت boolean پس از نظر ساختاری فرق دارن. به همین منظور باید یه راهکاری پیدا کنیم که این مشکل پیش نیاد. برای حلش ما می تونیم از ng-value تو radio و checkbox ها استفاده کنیم.
در یک جمله کاری ng-value برای ما می کنه اینه که مقدار string رو به boolean تبدیل می کنه


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام