所以基本上餐馆有两个属性dine_in或home_delivery。如果它们都是真的,那么我让用户决定他/她想要使用哪个。但是如果只有dine_in或者只有home_delivery可用,我只会向他们显示相应的单选按钮,他们不需要再次单击单选按钮。 这是我的代码:
<div class="row-fluid" style="line-height: 30px;">
Location:
<input type="radio" id="r1" ng-show= "outlet.attributes.dine_in == true" ng-model="checkin.location" value="DINE_IN" ng-checked="outlet.attributes.dine_in == true && outlet.attributes.home_delivery == false">
<label for="r1" ng-show= "outlet.attributes.dine_in == true"> Dine-In</label>
<input type="radio" id="r2" ng-model="checkin.location" ng-show= "outlet.attributes.home_delivery == true" value="HOME_DELIVERY" ng-change="checkin_select_dirty = false" ng-checked="outlet.attributes.dine_in == false && outlet.attributes.home_delivery == true">
<label for="r2" ng-show= "outlet.attributes.home_delivery == true"> Home Delivery / Take-away</label>
</div>
我的问题是虽然Home-Delivery或Dine-In按钮显示为已选中,但ng-model checkin.location
的值未定义。只有当我再次单击单选按钮时,ng-model才会传递相应的值。 checkin_select_dirty
适用于两个选项都可用且用户未检查其中任何一个选项的情况。它用于提示用户选择其中一个。