我在这里找到了一个很棒的树形指令。原链接:http://jsfiddle.net/n8dPm/
我通过查看其他几篇SO问题(1,2)尝试理解它的工作原理。但我并没有很清楚地理解递归调用渲染树形指令的方式,主要是compile函数。
- compile函数什么时候被全部调用?
- 什么时候将$compile函数缓存到变量
compiledContents
中(这是link函数吗?),什么时候将它附加到HTML文档中?为什么不总是附加?
--
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);
});
};
},