我有以下角度标记:
<tr ng-repeat="dia in dias">
<td>{{ dia[0].fecha }}</td>
<td ng-repeat="bloque in bloques">
<div ng-repeat="hora in dia|soloBloque:bloque|sacarHoras">
{{hora}}
<div ng-repeat="evento in dia|soloHora:hora">{{evento.cantidad}} {{ tipoAMedida(evento.tipo) }}</div>
</div>
</td>
</tr>
行<div ng-repeat="hora in dia|soloBloque:bloque|sacarHoras">
导致angular抛出以下错误:
0x800a139e - JavaScript runtime error: 10 $digest() iterations reached. Aborting!
如果我删除其中一个过滤器,代码工作正常。根据我所知,过滤器被正确链接。可能导致这种情况的原因是什么?
以下是过滤器:
soloBloque:
function soloProp(prop) {
return (function (prop) {
return function () {
return function (input, valor) {
return _.filter(input, function (e) { return e[prop] === valor; });
}
}
} (prop));
}
soloBloque = soloProp('bloque');
soloHora = soloProp('hora');
sacarHoras:
function sacarHoras () {
return function (input) {
return _(input).map('hora').unique();
}
}
答案 0 :(得分:0)
问题在于lodash的方法链接。 _(input)
导致角度绊倒。我在return _(input).map('hora').unique();
中将return _.unique(_.map(input, 'hora'));
更改为sacarHoras
,现在工作正常。