我不知道为什么ng-repeat重复多次外部数组的长度。这是数组:
$scope.giornieventi = [{
Intestazione: "Questa settimana",
Eventi: [{
Nome: "Giacomo",
Immagine: "",
Url: "://www.....",
Data: "Oggi"
},
{
Nome: "Giacomo2",
Immagine: "",
Url: "Ciao",
Data: "Domani"
}]
},
{
Intestazione: "Settimana successiva",
Eventi: [{
Nome: "Roberto",
Immagine: "",
Url: "Ciao",
Data: "Oggi"
},
{
Nome: "Roberto2",
Immagine: "",
Url: "Ciao",
Data: "Domani"
}]
}];
这是ng-repeat它不能正常工作:
<div ng-repeat="giorno in giornieventi">
<h3 ng-show="alertData(giorno.Intestazione)">@{{ giorno.Intestazione }}</h3>
<article ng-repeat="evento in giorno.Eventi">
@{{ evento.Nome }}
</article>
</div>
这是控制功能:
$scope.alertData= function(Intestazione) {
alert(Intestazione); return true;
}
奇怪的行为是我得到警报4次而不是2次,我不知道为什么。
答案 0 :(得分:1)
除了使用ng-show
获取提醒外,您的代码还可以。
ng-show
每次在范围内的某些内容发生变化时进行评估,以确定是否应该显示该元素,因此您看到所有事情都发生了两次(使其成为4个警报而不是2个),因为AngularJS会对ng-show
进行两次评估。
尝试将其更改为ng-init
,该元素在加载元素时运行一次:
<div ng-repeat="giorno in giornieventi">
<h3 ng-init="alertData(giorno.Intestazione)">@{{ giorno.Intestazione }}</h3>
<article ng-repeat="evento in giorno.Eventi">
@{{ evento.Nome }}
</article>
</div>
这是一个工作小提琴:http://jsfiddle.net/Lvc0u55v/6618/