问题陈述:显示控制器作用域数组中每个元素的JQ按钮集。

所以这样的事情是合乎逻辑的:

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


但是...在JQ buttonset中,如果输入/标签对的id不是唯一的,则每次指令调用buttonset()时,按钮的大小都会增加。例如。如果“算法”中有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">


一个非常简单的示例显示了这三种情况(正常大小,不断增长的按钮和语法错误)的实质,位于this Plunker

所有帮助和评论表示赞赏。

丹尼

最佳答案

调用jquery插件时似乎未设置for和id属性值

更改为:

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


这样,您可以在dom元素的$ digest阶段之后调用插件。

关于javascript - 在angularjs中使用jQuery UI buttonset,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14403448/

10-10 18:44