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

Commit 76f47d5

Browse files
Vadorequestgkalpak
authored andcommitted
feat($controllerProvider): add a has() method for checking the existence of a controller
Fixes #13951 Closes #14109
1 parent 871bebf commit 76f47d5

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

src/ng/controller.js

+9
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,15 @@ function $ControllerProvider() {
2727
var controllers = {},
2828
globals = false;
2929

30+
/**
31+
* @ngdoc method
32+
* @name $controllerProvider#has
33+
* @param {string} name Controller name to check.
34+
*/
35+
this.has = function(name) {
36+
return controllers.hasOwnProperty(name);
37+
};
38+
3039
/**
3140
* @ngdoc method
3241
* @name $controllerProvider#register

test/ng/controllerSpec.js

+17
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,23 @@ describe('$controller', function() {
7878
});
7979

8080

81+
it('should allow checking the availability of a controller', function() {
82+
$controllerProvider.register('FooCtrl', noop);
83+
$controllerProvider.register('BarCtrl', ['dep1', 'dep2', noop]);
84+
$controllerProvider.register({
85+
'BazCtrl': noop,
86+
'QuxCtrl': ['dep1', 'dep2', noop]
87+
});
88+
89+
expect($controllerProvider.has('FooCtrl')).toBe(true);
90+
expect($controllerProvider.has('BarCtrl')).toBe(true);
91+
expect($controllerProvider.has('BazCtrl')).toBe(true);
92+
expect($controllerProvider.has('QuxCtrl')).toBe(true);
93+
94+
expect($controllerProvider.has('UnknownCtrl')).toBe(false);
95+
});
96+
97+
8198
it('should instantiate a controller defined on window if allowGlobals is set',
8299
inject(function($window) {
83100
var scope = {};

0 commit comments

Comments
 (0)