разгрузка / уничтожение угловатых лениво загруженных компонентов

У меня есть настройка, которая похожа на пост, найденный здесьhttp://ify.io/lazy-loading-in-angularjs/ обрабатывать ленивую загрузку различных компонентов моего приложения в Angular.

У меня проблема в том, что чем больше компонентов загружается, тем больше занимает память приложения (очевидно, я знаю). Есть ли чистый способ «разгрузить» или «уничтожить» угловые сервисы / контроллеры / директивы / и т. Д., Которые были загружены лениво?

простой пример (для справки)

app.js

var app = angular.module('parentApp', ['ui.router']).config(function ($stateProvider, $urlRouterProvider, $controllerProvider, $compileProvider, $filterProvider, $provide) {

        var app = angular.module('app', ['ui.router'])
            .config(function ($stateProvider, $urlRouterProvider, $controllerProvider, $compileProvider, $filterProvider, $provide) {

                app.lazy = {
                    controller: $controllerProvider.register,
                    directive: $compileProvider.directive,
                    filter: $filterProvider.register,
                    factory: $provide.factory,
                    service: $provide.service
                };

                $urlRouterProvider.otherwise('/home');
                $stateProvider
                    .state('home', {
                        url: '/home',
                        templateUrl: 'views/main.html',
                        controller: 'MainCtrl'
                    })
                    .state('lazyLoad', {
                        url: '/lazyLoad',
                        templateUrl: 'views/lazyLoad.html',
                        controller: 'lazyLoadCtrl',
                        resolve: {
                            promiseObj: function ($q, $rootScope) {
                                var deferred = $q.defer();
                                var dependencies = [
                                    'scripts/controllers/lazyLoad.js'
                                ];

                                $script(dependencies, function () {
                                    $rootScope.$apply(function () {
                                        deferred.resolve();
                                    });
                                });

                                return deferred.promise;
                            }
                        }
                    });
            });

и ленивый загруженный контроллер lazyLoad.js

angular.module('app')
  .lazy.controller('lazyLoadCtrl', function($scope){
        $scope.greeting = 'hi there';
      }
);

Если пользователь переходит к#/lazyLoadприложение будет загружаться в контроллер (и просматривать), и все, что ему еще говорят, ему нужно. Но когда пользователь уходит от#/lazyloadЯ хочу, чтобы все ранее загруженные компоненты были выгружены / уничтожены.

Как бы я полностью отменил регистрацию / уничтожил / разгрузил (не уверен, что здесь будет правильный глагол ...) контроллера 'lazyLoadCtrl'. Как указано выше, в идеале я хотел бы иметь возможность выгружать лениво загруженные контроллеры, директивы, фильтры, фабрики и службы, когда они больше не нужны.

Спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос