Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

Remove the $controllerProvider.allowGlobals flag #15349

Closed
@mgol

Description

@mgol

Note: for support questions, please use one of these channels: https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#question. This repository's issues are reserved for feature requests and bug reports.

Do you want to request a feature or report a bug?
A breaking change request.

What is the current behavior?
$controllerProvider.allowGlobals is set to false by default. Setting it to true allows $controller to find controller constructors on window which is discouraged.

If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem via https://plnkr.co or similar (template: http://plnkr.co/edit/tpl:yBpEi4).

What is the expected behavior?
$controllerProvider.allowGlobals flag should be removed.

What is the motivation / use case for changing the behavior?
Relying on global controller constructors is an anti-pattern and can mask bugs as you can't always control all the global elements on the page. We've been discouraging this pattern for some time.

Which versions of Angular, and which browser / OS are affected by this issue? Did this work in previous versions of Angular? Please also test with the latest stable and snapshot (https://code.angularjs.org/snapshot/) versions.
All.

Other information (e.g. stacktraces, related issues, suggestions how to fix)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions