Согласно документации a template
может быть функцией, которая принимает два параметра: element
и attributes
и возвращает строковое значение, представляющее шаблон. Он заменяет текущий элемент содержимым HTML. Процесс замещения переносит все атрибуты и классы из старого элемента в новый.
Функция compile
имеет дело с преобразованием шаблона DOM. Он принимает три параметра: element
, attributes
и transclude
. Параметр transclude
устарел. Он возвращает функцию link
.
Похоже, что функции template
и a compile
очень похожи и могут достичь того же. Функция template
определяет шаблон, а функция compile
изменяет шаблон DOM. Однако это можно сделать в самой функции template
. Я не понимаю, зачем изменять шаблон DOM вне функции template
. И наоборот, если DOM можно изменить в функции compile
, то какая потребность в функции template
?