angular.jsのdirectiveで再帰的なカスタム要素をつくる

ツリーのような再帰的なカスタム要素をつくろうとした場合、素直に書くと、 "RangeError: Maximum call stack size exceeded"が発生します。 angularがテンプレートを再帰的に解析しようとして収集つかなくなるようです。

そのものズバリな解決策が以下のページに書かれていました。

http://stackoverflow.com/questions/19125551/angularjs-understanding-a-recursive-directive

テンプレートのコンパイルの挙動を指定するようです。 ということで自分でもやってみました。