あなたが解決しようとしている問題は、クリックしたときに選択したボタンがアクティブに見えるようにすることだと思います。Bootstrap javascript コンポーネントを使用せずに Bootstrap スタイルを使用しているため、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';
}
}
});
これは、作業中のフィドルへのリンクです。