1

このplnkrを参照してくださいhttp://plnkr.co/edit/WZHMuYY3y2wbI6UysvY6?p=preview

ラジオ ボタン グループを含む ng-repeat で ng-form タグを使用すると、ラジオ ボタンがリンクされるため、1 つの ng-repeat でラジオ ボタンをオンにすると、他のすべての ng-repeat で選択が解除されます。ng-repeat のモデルが他の項目から分離されているため、これは私を困惑させます。これは、ng-repeat を使用する場合だけの問題ではありません。また、独立したスコープを持つカスタム ディレクティブのインスタンスが複数ある場合にも発生します。

<div ng-form name="myForm">

Plnkkr でいくつかの項目を追加してみて、いくつかの項目のラジオ ボタンを確認してください。それらは独立しているべきですが、そうではありません。

これは Angular のバグですか? そうでない場合、なぜこのように機能し、どうすれば回避できますか?

<form name="mainForm" ng-submit="submitAll()">
      <ul>
        <li ng-repeat="item in items" ng-form="subForm">          
          <input type="text" required name="name" ng-model="item.name"/>
          <input type="radio" name="myRadio" value="r1" ng-model="item.radio" /> r1
          <input type="radio" name="myRadio" value="r2" ng-model="item.radio" /> r2
          <span ng-show="subForm.name.$error.required">required</span>
          <button type="button" ng-disabled="subForm.$invalid" ng-click="submitOne(item)">Submit One</button>
        </li>
      </ul>
      <button type="submit" ng-disabled="mainForm.$invalid">Submit All</button>
    </form>
4

2 に答える 2

6

これらのラジオボタンは、同じ名前を付けているため、ブラウザによって「接続」されています。name属性を ドロップするだけで、期待どおりに機能し始めます: http://plnkr.co/edit/AEtGstSBV6oydtvds52Y?p=preview

于 2013-10-01T11:06:57.673 に答える