0

以前にこれに遭遇しng-srcたことがありますが、 でそれを処理する方法がわかりません<select>。非常に単純な取引ですが、選択ドロップダウンが表示された後は値を変更できません。私は試してみましたが、運が$apply()あり$compile()ませんでした。

問題は、Angular がその要素をコンパイルする方法を知らないことだと思います。何か案は?これがコードです...

<blockquote class="header10">
  <label class="radio">
    <input type="radio" ng-model="panel.style" value="Rods and Rings">Rod and Rings
  </label>
  <select ng-hide="!(panel.style == 'Rods and Rings')" ng-model="panel.style.rodsAndRings">
    <option value="">--Choose Header--</option>
    <option>Butterfly Pleats (2 inch)</option>
    <option>Cuff Tops</option>
    <option>Fan Pleats</option>
    <option>Flat</option>
    <option>Goblet Pleats</option>
    <option>Inverted Box Pleats</option>
    <option>Pencil Pleats</option>
    <option>Pinch Pleats (4 inch)</option>
    <option>Tab Tops</option>
    <option>Tie Tops</option>
    <option>Other</option>
  </select>
  <div ng-hide="!(panel.style.rodsAndRings == 'Other')">
    <p>Other <input type="text"></p>
  </div>
</blockquote>

動作は、要素が表示された後も値を確認でき、それらのいずれかを選択すると、決して取得されないためselect、常にデフォルトに戻ります。--Choose Header--

Plunker のテスト ケース: http://plnkr.co/edit/dTYcCi6aT3H5Gm7TEvyc?p=preview

4

1 に答える 1

3

問題はpanel.style.rodsAndRings、有効な ng-model ではないことです。文字列プリミティブとして定義panel.styleしたため、プロパティをアタッチしても機能しません。次のように、モデルを別のものに変更してみてくださいpanel.selected

また、オプションでハードコーディングする代わりに、angulars ng-options を使用することをお勧めします

于 2013-08-20T23:27:37.590 に答える