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