У меня есть функция с областью действия, которая срабатывает больше раз, чем вызывается, и не может понять, почему. Я создал небольшой пример в plunker, и ниже приведены фрагменты. при загрузке страницы вы думаете, что $ scope.hex_color должен срабатывать три раза, но если вы просматриваете консоль в отладчике (Chrome F12), она срабатывает девять раз.Функция угловой функции scope чаще срабатывает, чем вызывается
Может ли кто-нибудь объяснить?
http://plnkr.co/edit/7DMwA2InP0v6sD2s5WxW?p=preview
фрагмент кода HTML:
<div ng-repeat="shape in list">
<div>{{ shape.Title }} | {{ hex_color(shape) }}</div>
</div>
контроллер фрагмент кода:
$scope.list = [
{ "Id": 1000, "Title": "Red Ball", "red": "ff", "green": "00", "blue": "00" },
{ "Id": 1001, "Title": "Green Triangle", "red": "00", "green": "ff", "blue": "00" },
{ "Id": 1002, "Title": "Blue Square", "red": "00", "green": "00", "blue": "ff" },
];
$scope.hex_color = function (shape) {
$log.info("hex_color: " + shape.Id);
return "#" + shape.red + shape.green + shape.blue;
}
Обновление: Если я запустить код в локальном сервере (в приведенном выше примере было контроль кода в плункере), это огонь s 15 раз!
возможно дубликат (http://stackoverflow.com/questions/14973792/why-angularjs-will-invoke [Почему angularjs будет вызывать функцию \ 'имя() \' дважды?] -функция-имя-дважды) – JLRishe
См. также: http://stackoverflow.com/questions/14987277/function-called-multiple-times-in-angularjs-repeat-section – JLRishe
Я понимаю это сейчас. Спасибо JLRishe и squiroid за ответы! – hlo