0

問題文: コントローラー スコープ配列内の各要素の JQ ボタンセットを表示します。

したがって、次のようなことは論理的です。

<div ng-repeat='a in algos' mybuttonset>
   <input name='X' id='A'><label for='A'>
</div>

しかし... JQボタンセットでは、入力/ラベルのペアのIDが一意でない場合、ディレクティブがbuttonset()を呼び出すたびにボタンのサイズが大きくなります。例えば。「algos」に 20 個の要素がある場合、ボタンは巨大です。

では、ID を一意にするにはどうすればよいでしょうか。ng-repeat 内の {{$index}} が機能すると思いました:

<div ng-repeat='a in algos' mybuttonset>
   <input name='X' id='A{{$index}}'><label for='A{{$index}}'>
</div>

ただし、その場合、angular は構文エラーを報告します。

Syntax error, unrecognized expression: [for=A{{$index}}] <div ng-repeat="a in algos" dwbuttonset="" class="ng-scope ui-buttonset">

3 つのケース (通常のサイズ、拡大するボタン、構文エラー) の本質を示す非常に単純な例は、この Plunkerにあります。

すべてのヘルプとコメントに感謝します。

ダニー

4

1 に答える 1

3

jquery プラグインを呼び出したときに for および id 属性の値が設定されていないようです

次のように変更します。

.directive('dwbuttonset', function() {
    return function(scope, elm, attrs) {
    setTimeout(function() {
      (elm).buttonset(); 
    },0);
    };
});

このようにして、dom 要素の $digest フェーズの後にプラグインを呼び出します。

于 2013-01-18T20:45:16.553 に答える