【发布时间】:2015-09-18 11:58:45
【问题描述】:
以下 HTML 代码用 21 个电话填充 ul:
<li ng-repeat="phone in phones" ng-class="{'digestTest': countDigestOccurences(phone) }">
<p>{{phone.snippet}}</p>
</li>
countDigestOccurences 是一种 JavaScript 方法,它使用字典来跟踪每个电话调用 countDigestOccurences() 的次数。
$scope.countDigestOccurences = function(phone){
var phoneFound = false;
$.each($scope.digestOccurencesPerPhone, function(){
if(this.phone.id == phone.id){
phoneFound = true;
this.occurences++;
}
});
if(!phoneFound)
{
$scope.digestOccurencesPerPhone.push({
phone: phone,
occurences: 1
});
}
}
通过这种方法,我可以清楚地看到 countDigestOccurences 被每部电话调用 4 次。 我一辈子都想不通为什么它被调用了 4 次。
更新:
即使 Phone 项的 HTML 如下所示,周期数仍为 4:
<li ng-repeat="phone in phones "
class="thumbnail phone-listing" ng-class="{ 'digestTest': countDigestOccurences(phone), 'digestTestAgain': randomMethodDoesNothing() }">
<p>{{phone.snippet}}</p>
</li>
【问题讨论】:
-
ng-class在每个摘要循环中进行评估,不仅在将项目插入ng-repeat时 -
但是为什么会有 4 个摘要循环呢?
-
什么是
$.each?我以前没见过。 -
@JoeLloyd 在我看来每个函数都像 jQuery
标签: javascript angularjs frontend