ng-repeat リストでは、リスト内の各項目に (JQ UI ラッピング ラジオ ボタンを使用して) ON/OFF ボタンを配置するのに苦労しています。
ラジオ ボタンを使用する場合、JQ UI ボタンセットには「input」タグと「label」タグの両方が必要であり、ラベルの「for」も入力の「id」と一致する必要があるようです。
次のように、{{$index}} を使用して一意にすることができます。
<label for='algoOn{{$index}}'>ON</label>
<input type='radio' [... blah blah ..] id='algoOn{{$index}}'>
問題は、DOM の準備ができたら $().buttonset() を呼び出すことです。さまざまなこと (dom.ready、リンク関数など) を試しましたが、遅延 [ $('.buttonme').buttonset() ] の後に呼び出して、ページ上のすべてのボタンをトリガーする必要がありました。ハッキー。
ただし、オン/オフ ボタンをディレクティブでラップしたいと思います。一意の ID が必要な場合でも、同じ問題があります。(一意の ID を持っていない場合、ディレクティブのリンク関数の呼び出しが成功するたびにボタンが大きくなります)
しかし... テンプレートで {{$index}} を使用すると、不思議な構文エラーが発生します。
Syntax error, unrecognized expression: [for=on{{$index}}] <onoffbtn prop="win.runstate" class="ng-isolate-scope ng-scope">
(コードには 'for=on{{$index}}' が含まれていませんが!)
ディレクティブは推奨されるアプローチですが、これを回避する方法がわかりません。
次に、ディレクティブでは、最初のクリック後にすべてのラジオ ボタンが同期されますが、ページが最初に読み込まれると、ディレクティブのボタンは両方とも空白になります。すぐにはモデルに設定されません。リンク機能でそれを行うことを考えました(例:要素->入力を見つける->値を設定)が、角度はすべての「名前」と「ID」を書き直しました。
両方の問題を示すプランカーはこちら: http://plnkr.co/edit/DTy8dGsRDVVDnWZBYlqQ
ありがとう!