我有一个广播组,一个按钮和一个布尔值。单击该按钮时,如果布尔值为true,则选中一个单选按钮,如果为false,则检查另一个。不知道如何为这样的东西设置绑定。
事实证明情况有点复杂。
流程如下:
因此哈希的不同状态如下:
//base offer only
order.items = {base_offer: 1}
//base offer with payment plan
order.items = {base_offer_plan: 1}
//accessory kit only if base_offer_plan was not selected
order.items = {accessory_kit: 1}
//accessory kit with plan if user first chose base_offer_plan
order.items = {accessory_kit_plan: 1}
答案 0 :(得分:0)
以下是我如何处理类似场景的示例...注意在指令中使用的ng-class你可能想要使用ng-checked但做类似的事情...在我的情况下我最终得到两个作为切换的按钮是没问题:
directive('buttonsRadio', [function()
{
return {
restrict: 'E',
scope: {model: '=', options: '='},
controller: function($scope)
{
$scope.activate = function(option) {
$scope.model = option;
}
},
template: "<div class='btn-group' data-toggle='buttons-radio'><div ng-repeat='option in options track by option.optionId'><button type='button' class='btn' ng-class='{active: option.optionId==model.optionId}' ng-click='activate(option)'>{{option.name}}</button><br></div></div>"
}
}])
要注意我没有在这里正确设置ng-model,所以它会更新到外面并且可以用于我的目的,但可能不对。有关于与我在其他地方使用的ng-model集成的文档,特别是:
// view -> model
// bit of jQuery in this case to handle async geocoding results
$(iElement).geocomplete().bind("geocode:result", function(event, result){
ctrl.$setViewValue(result.formatted_address);
console.log(result.formatted_address);
scope.$emit("geocodeResultComplete", result); //use this event to update a google map
});
// model -> view
ctrl.$render = function() {
iElement.val(ctrl.$viewValue);
};
// load init value from DOM
//ctrl.$setViewValue(iElement.val());
答案 1 :(得分:0)
使用ng-value
并将模型的值设置为该值将检查无线电。
ng-value="true"
会将其设置为true
,其中value =“true”将是字符串'true'
和true != 'true'
复选框返回true
/ {{ 1}}布尔值,不是字符串。
http://jsfiddle.net/TheSharpieOne/d7yWb/
HTML
false
控制器:
<input type="radio" name="boolRadio" ng-model="checkboxValue" ng-value="true" />
<input type="radio" name="boolRadio" ng-model="checkboxValue" ng-value="false" />
<input type="submit" ng-click="updateValue()" />
<input type="checkbox" name="bool" ng-model="checkbox" />
我们将默认复选框设置为false,因为它未定义,单击“提交”将不会在开始时正确设置收音机。
你可以通过删除updateValue函数并将收音机的模型直接设置为复选框来立即查看该复选框。