2014-01-06 2 views
1

Функция key_helper вызывается еще много раз, чем ожидалось. Если длина упорядоченной клавиши равна 5, ее получают 25 раз вместо 5 раз. Я не уверен, какой код следует использовать для лучшего занижения моего problem.how, чтобы убедиться, что он .doesn't повторитьугловой ng-repeat срабатывает много раз, чем ожидалось

Шаблон:

<td ng-repeat="key in orderedkeys" > 
<div>{{Key_Helper(key)}}</div> 
</td> 

Я попытался с помощью фильтра: (та же проблема)

<td ng-repeat="key in orderedkeys" > 
<div>{{key | debug}}</div> 
</td> 

Функция:

$scope.Key_Helper = function(item) 
{  
    console.log("key");  
}; 
+0

см. Http://stackoverflow.com/questions/14973792/why-angularjs-will-invoke-function-name-twice – Lucius

+0

, как убедиться, что он больше не вызывает цикл дайджест –

ответ

2

Выражение {{}} в не фактической JavaScript, это angular expression. angular expression позволяет вам позвонить по телефону $scope и $filter.

Если какой-либо вызов функции происходит внутри выражения, то он будет выполняться два раза, сначала вызовите функцию и второй раз на следующем digest цикла и угловых работают таким образом. $filter - вызов функции. Лучше использовать простой expression как {{1+1}} или просто значение {{key}}. Вы можете проверить this, this для лучшего понимания.

Смежные вопросы