Итак, у меня есть довольно простое приложение Angular, и я пытаюсь выяснить, что вызывает отсоединенные деревья DOM, которые отображаются в профайлере хром. Например, когда вы загружаете эту страницу:
http://rztest.nodejitsu.com/dashboard
Я получаю два отдельных дерева DOM, один из которых содержит 2 записи, а другой - 3 записи. Эта страница не использует какие-либо пользовательские директивы, поэтому она должна быть чем-то с Angular или jQuery, но я просто не вижу ничего, что могло бы вызвать эти отдельные DOM-деревья.
Проблема становится еще больше (если вы нажмете ссылку на проекты и сделаете другой профиль, в них есть намного больше отдельных деревьев DOM и записей), поэтому я надеюсь, что если я смогу исправить этот очень простой пример, он будет каскадом во всей остальной части приложения.
Также обратите внимание, что я использую ui-router, но я пробовал эту же работу с Angular маршрутизатором по умолчанию с теми же результатами. Даже приложение todomvc Angular (http://todomvc.com/architecture-examples/angularjs/#/), которое не использует jQuery, имеет отдельные деревья DOM.
UPDATE
Я вытащил jQuery из приложения и на моей простой странице исчезло все, кроме одного отдельно взятого дерева (и это один из AngularJS, который я знаю, где он). Когда я пытаюсь создать более сложную страницу (с настраиваемой директивой, которая имеет templateUrl и делает переключение), удаление jQuery, похоже, не помогает.
Я не уверен, что jQuery - это фактически проблема (или, может быть, ее часть) или как Angular с помощью jQuery/jqLite.
Кто-нибудь знает, существует ли существующее дерево DOM, известное в jQuery 1.10.x?