Просит $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.