AngularJs 1.x: удалить динамически созданную область и отменить регистрацию контроллера - PullRequest
0 голосов
/ 23 февраля 2019

Я создал область и контроллер динамически из моего кода ( обычно от поставщика ), как указано ниже

var controllerFn = function ($scope) {
  /* scope functions and variables */
  $scope.$on('custom_ng_event', function (evt) {
    console.log('Custom evt listened in dynamic scope');
  });
  $scope.$on('$destroy', function () {
    console.log('Dynamically created scope destroyed');
  });
}
var $scope = $rootScope.$new();
var ctrlInstance = $controller(controllerFn, {$scope: $scope}); 

Я хочу удалить область и отменить регистрацию контроллера вопределенный момент.Я думал, что $ scope. $ Destroy () выполнит эту задачу, но я думаю, что что-то упустил, так как это не дает ожидаемого результата.Например, любая широковещательная рассылка на $ rootScope по-прежнему отражается в динамически создаваемом слушателе области.

Пожалуйста, помогите мне понять, что я сделал неправильно.

Дополнительная информация: Я предпочитаю иметьмоя динамически созданная область видимости является дочерней областью корневой области ( непосредственно ), потому что она предназначена для использования во всем приложении ( аналогично модальному ).

Заранее спасибоBalu

...