0

これは機能します:

<h4>Radio &amp; Uncheckable Radio</h4>
<pre>{{radioModel || 'null'}}</pre>
<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 || 'null'}}
<div class="btn-group">
  <label class="btn btn-primary" data-ng-repeat="store in global.user.store" ng-model="radioModel" btn-radio="{{store}}" uncheckable>{{store}}</label><br>
</div>

1 つのラジオ ボタンを選択すると、他のラジオ ボタンは選択解除されません。一度に 1 つのラジオ ボタンをオンにする代わりに、3 つすべてをオンにすることができます。{{radioModel}} は値を表示しません。最初の例では、{{radioModel}} は、btn-radio の値に応じて「Left」、「Right」、または「Middle」を表示します。

data-ng-repeat="store in global.user.store" がボタンの動作を壊すようなものです!

4

2 に答える 2

1

オブジェクトのように、スコープ変数をドットで設定してみてください。

$scope.radio = {model: null}; //for example

また、radioModel の代わりに常に radio.model を使用してください。

これは、スコープの継承が ng-repeat の各 ng-model で機能する方法により、新しいスコープが生成されるためです。「ドット」ルールを使用すると、この問題が発生します。

詳細はこちらhttps://github.com/angular/angular.js/wiki/Understanding-Scopes

于 2014-10-19T20:46:43.077 に答える
0

属性の を削除してみてください{{}}:btn-radio

<label class="btn btn-primary" data-ng-repeat="store in global.user.store" ng-model="radioModel" btn-radio="store" uncheckable>{{store}}</label>
于 2014-10-19T20:41:48.750 に答える