问题很简单,如何创建一个angularJs过滤器,将任何输入连接到一个唯一的ID。这对于生成HTML id非常有用,或者为ng-repeat中的一组元素定义唯一属性值。
注意:ID必须是“全局”唯一的,这使得角度ng-repeat的$index
无效。
现在,您可能想到的解决方案是这样的:
myModule.filter('uniqueId', function(){
var idCounter = 0;
return function(input) {
return (input || '') + (++idCounter);
};
});
并在您的HTML中写下类似的内容:
<div id="{{groupName | uniqueId}}">
挑战是角度将进入摘要循环,因为评估groupName | uniqueId
永远不会产生相同的值,这意味着范围永远不会解决。
最后一件事。我们使用angular v1.2.27,这意味着我们不能使用angular 1.3的新::
(即一次绑定)运算符。