Как только вы добавите Angular-выражение в View, например {{expression}}, оно будет добавлено для просмотра списка текущей области.
Angular использует механизм, называемый грязной проверкой, для архивирования двусторонней привязки.Каждый раз, когда происходят какие-то определенные события, Angular будет проходить через список наблюдения, чтобы проверить, изменилось ли отслеживаемое значение, это действие называется дайджест-циклом.
Здесь некоторые конкретные события состоят из пользовательского ввода, изменения модели, запросы http завершаются и т. д. Поскольку в выражении используется функция getLink, каждый раз, когда Angular запускает грязный цикл проверки / дайджеста, эта функция будет выполняться еще раз, чтобы проверить, изменился ли ее возвращаемый результат.
Проблема в том, что функция getCallback2 здесь представляет собой http-запрос, после выполнения которого Angular вызовет еще одну круглую грязную проверку, которая снова выполнит эту функцию ... Bang, это бесконечный цикл.