2014-03-13 49 views
1

我正在使用ng-repeat指令中的引導程序單選按鈕。但是,這些更改不會傳播到基礎模型。這是代碼:ng-repeat指令中的引導程序收音機

<a href="#" class="btn btn-primary" ng-click="data.list.push({ value: 1 })">Add Item</a> 
    <div class="alert alert-info"> 
    <div ng-repeat="item in data.list track by $index"> 
     <div class="btn-group" data-toggle="buttons"> 
     <label class="btn btn-sm btn-default"><input type="radio" data-ng-model="item.value" value="1">1</label> 
     <label class="btn btn-sm btn-default"><input type="radio" data-ng-model="item.value" value="2">2</label> 
     </div> {{ item.value }} 
    </div> 
    </div> 

同樣的例子工作時,只要我刪除的按鈕組,並用這樣的普通單選按鈕代替它:

<a href="#" class="btn btn-primary" ng-click="data2.list.push({ value: 1 })">Add Item</a> 
    <div class="alert alert-info"> 
    <div ng-repeat="item in data2.list track by $index"> 
     <input type="radio" data-ng-model="item.value" value="1"> 
     <input type="radio" data-ng-model="item.value" value="2"> 
     {{ item.value }} 
    </div> 
    </div> 

我已經建立了plunkr:http://plnkr.co/edit/ROLW8lluX6DrM3w2UUlH?p=preview

回答

1

這條線(從plunker)的問題是:

<script data-require="[email protected]*" data-semver="3.1.1" src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script> 

的引導JS捕捉包裝標籤上的點擊事件之前AngularJS可以在無線電輸入其註冊。從你的代碼中刪除引導JS修復了這個問題(或者至少可以解決它)。

通常,將Bootstrap JS與AngularJS一起使用可能會產生問題。

取而代之,請考慮使用AngularUI Bootstrap庫。它還提供了用於屏蔽按鈕的無線電輸入的實現以及其他一些與Bootstrap JS相關的功能。

1

Javascript實際上並沒有改變單選按鈕的值;它只是切換屏蔽單選按鈕的按鈕類別的active

考慮使用從AngularUI Bootstrap的按鈕指令。