MCPcopy Create free account
hub / github.com/bclinkinbeard/angular / getControllers

Function getControllers

test/fixtures/foo.js:6518–6548  ·  view source on GitHub ↗
(directiveName, require, $element, elementControllers)

Source from the content-addressed store, hash-verified

6516
6517
6518 function getControllers(directiveName, require, $element, elementControllers) {
6519 var value, retrievalMethod = 'data', optional = false;
6520 if (isString(require)) {
6521 while((value = require.charAt(0)) == '^' || value == '?') {
6522 require = require.substr(1);
6523 if (value == '^') {
6524 retrievalMethod = 'inheritedData';
6525 }
6526 optional = optional || value == '?';
6527 }
6528 value = null;
6529
6530 if (elementControllers && retrievalMethod === 'data') {
6531 value = elementControllers[require];
6532 }
6533 value = value || $element[retrievalMethod]('$' + require + 'Controller');
6534
6535 if (!value && !optional) {
6536 throw $compileMinErr('ctreq',
6537 "Controller '{0}', required by directive '{1}', can't be found!",
6538 require, directiveName);
6539 }
6540 return value;
6541 } else if (isArray(require)) {
6542 value = [];
6543 forEach(require, function(require) {
6544 value.push(getControllers(directiveName, require, $element, elementControllers));
6545 });
6546 }
6547 return value;
6548 }
6549
6550
6551 function nodeLinkFn(childLinkFn, scope, linkNode, $rootElement, boundTranscludeFn) {

Callers 1

nodeLinkFnFunction · 0.85

Calls 2

isStringFunction · 0.85
forEachFunction · 0.85

Tested by

no test coverage detected