我假设您要解决的问题是当您单击它时让选定的按钮显示为活动状态。由于您使用的是 Bootstrap 样式而不使用 Bootstrap javascript 组件,因此您需要自己在 Angular 中完成这项工作。
要使单选按钮显示为“选中”,您必须将活动样式应用于标签的类列表。
预选选项需要 .active
对于预选选项,您必须自己将 .active 类添加到输入标签。
在 Angular 中动态修改元素的类列表的方法是使用ng-class。您需要阅读该指令的文档,因为有几个选项可以使其工作。
我已经更新了您的示例以使用 ng-class 指令,现在当您单击它时,它使按钮显示为活动状态。
我不建议完全这样做,尤其是关于让你的控制器负责 CSS 类的部分,但这是一个很好的起点,可以让你找出在你的情况下最好的方法。
看法
<div>poiType is initialized to 0, so the first button should be selected
<div ng-controller="TodoCtrl as ctrl" style="margin-bottom: 5px; padding: 5px; width:100%;">
<div class="btn-group btn-group-justified">
<label ng-class="ctrl.class(ctrl.TYPE_POI)">
<input type="radio" ng-value="ctrl.TYPE_POI" ng-model="ctrl.poiType" />POI</label>
<label ng-class="ctrl.class(ctrl.TYPE_TRIP)">
<input type="radio" autocomplete="off" ng-value="ctrl.TYPE_TRIP" ng-model="ctrl.poiType" />itinerari</label>
<label ng-class="ctrl.class(ctrl.TYPE_EVENT)">
<input type="radio" autocomplete="off" ng-value="ctrl.TYPE_EVENT" ng-model="ctrl.poiType" />eventi</label>
</div>ctrl.poiType = {{ctrl.poiType}}</div>
</div>
控制器
angular.module('epoiApp', [])
.controller('TodoCtrl', function () {
this.poiType = 0; // first button should be selected
this.TYPE_POI = 0;
this.TYPE_TRIP = 1;
this.TYPE_WAYPOINT = 2;
this.TYPE_EVENT = 3;
this.class = function (poiType) {
if (poiType == this.poiType) {
return 'btn btn-default active';
} else {
return 'btn btn-default';
}
}
});
这是工作小提琴的链接。