Просит $scope, чтобы обмануть модуль контроллера BC

В исходном коде директивы ngSwitch и FromController вы можете увидеть этот комментарий:

// asks for $scope to fool the BC controller module

что это за измена? почему это используется?

ngSwitch Source Line

    // asks for $scope to fool the BC controller module
    controller: ['$scope', function ngSwitchController() {
     this.cases = {};
    }] ...

FormController Soruce Line

//asks for $scope to fool the BC controller module
FormController.$inject = ['$element', '$attrs', '$scope', '$animate'];
function FormController(element, attrs, $scope, $animate) {  ...

1 ответ

Решение

Модуль контроллера BC является сокращением для Backward Compatability,

Загрузите этот модуль, чтобы включить контроллеры старого стиля, где контроллер и область видимости смешаны вместе.

Этот модуль украшает службу $ controller Angular:

  • если данный контроллер не запрашивает $ scope, он создает его по-старому
  • если данный контроллер запрашивает $ scope, создание экземпляра делегируется службе $ controller по умолчанию.

    Это также позволяет выполнять пошаговую миграцию приложений.

Таким образом, стандартные угловые модули всегда запрашивают $scope ссылка, даже если они не намерены использовать его, чтобы избежать создания экземпляра для BC.

Другие вопросы по тегам