问题陈述:显示控制器作用域数组中每个元素的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/