Angularjs: zrozumienie dyrektywy rekurencyjnej
Znalazłem tutaj świetną dyrektywę drzewa. Oryginalny:http://jsfiddle.net/n8dPm/
Starałem się zrozumieć jego funkcjonowanie poprzez kilka innych pytań SO,1,2 . Nie mogłem zrozumieć, w jaki sposób wywołania rekurencyjne powodują działanie dyrektywy drzewa. Głównie funkcja kompilacji
Kiedy zadzwoniła cała funkcja kompilacji?Kiedy funkcja $ compile jest buforowana w varibalecompiledContents
(czy jest to funkcja łącza?), a kiedy dołącza? Dlaczego nie jest zawsze dołączany?-
compile: function(tElement, tAttr) {
var contents = tElement.contents().remove();
var compiledContents;
return function(scope, iElement, iAttr) {
if(!compiledContents) {
compiledContents = $compile(contents);
}
compiledContents(scope, function(clone, scope) {
iElement.append(clone);
});
};
},