AngularJS Bootstrap单选按钮组

时间:2015-09-25 10:54:31

标签: angularjs twitter-bootstrap

我正在尝试使用此处的教程设置一个单选按钮组:

https://angular-ui.github.io/bootstrap/

所以在我看来我创造了这个:

<div class="form-group">
    <div class="btn-group">
        <label class="btn btn-primary" ng-model="controller.selectedLines[0].forDelivery">For delivery</label>
        <label class="btn btn-primary" ng-model="!controller.selectedLines[0].forDelivery">For collection</label>
    </div>
</div>

我的问题是我无法选择按钮。 在他们的例子中,他们对每个按钮都有不同的布尔值,但是我必须共享布尔值,所以如果布尔值是 true 那么按钮“For delivery”应该是活动的,如果值是< strong> false 然后“For collection”应该是活动的。

我尝试这样做:

<div class="form-group">
    <div class="btn-group" data-toggle="buttons">
        <label class="btn btn-default" ng-class="active: controller.selectedLines[0].forDelivery === true">
            <input type="radio" name="optionsRadios" ng-model="controller.selectedLines[0].forDelivery" ng-value="true" ng-change="deliveryController.requestDeliveryDate(controller.order, controller.selectedLines)"> For delivery
        </label>
        <label class="btn btn-default" ng-class="active: controller.selectedLines[0].forDelivery === false">
            <input type="radio" name="optionsRadios" ng-model="controller.selectedLines[0].forDelivery" ng-value="false" ng-change="deliveryController.requestDeliveryDate(controller.order, controller.selectedLines)"> For collection
        </label>
    </div>
</div>

但是有同样的问题。 有谁知道如何根据我的价值选择按钮?

1 个答案:

答案 0 :(得分:12)

参考https://angular-ui.github.io/bootstrap/

中给出的示例
<div class="btn-group">
    <label class="btn btn-primary" ng-model="radioModel" btn-radio="'Left'">Left</label>
    <label class="btn btn-primary" ng-model="radioModel" btn-radio="'Middle'">Middle</label>
    <label class="btn btn-primary" ng-model="radioModel" btn-radio="'Right'">Right</label>
</div>

选择左侧按钮时radioModel='Left'

至于您的方案,缺少一些选项。这是工作代码

<div class="btn-group">
    <label class="btn btn-primary" ng-model="mode" btn-radio="'Delivery'">For delivery</label>
    <label class="btn btn-primary" ng-model="mode" btn-radio="'Collection'">For collection</label>
</div>

Demo