MCPcopy Create free account
hub / github.com/binux/qiandao / getControllers

Function getControllers

web/static/components/angularjs/angular.js:6490–6520  ·  view source on GitHub ↗
(directiveName, require, $element, elementControllers)

Source from the content-addressed store, hash-verified

6488
6489
6490 function getControllers(directiveName, require, $element, elementControllers) {
6491 var value, retrievalMethod = 'data', optional = false;
6492 if (isString(require)) {
6493 while((value = require.charAt(0)) == '^' || value == '?') {
6494 require = require.substr(1);
6495 if (value == '^') {
6496 retrievalMethod = 'inheritedData';
6497 }
6498 optional = optional || value == '?';
6499 }
6500 value = null;
6501
6502 if (elementControllers && retrievalMethod === 'data') {
6503 value = elementControllers[require];
6504 }
6505 value = value || $element[retrievalMethod]('$' + require + 'Controller');
6506
6507 if (!value && !optional) {
6508 throw $compileMinErr('ctreq',
6509 "Controller '{0}', required by directive '{1}', can't be found!",
6510 require, directiveName);
6511 }
6512 return value;
6513 } else if (isArray(require)) {
6514 value = [];
6515 forEach(require, function(require) {
6516 value.push(getControllers(directiveName, require, $element, elementControllers));
6517 });
6518 }
6519 return value;
6520 }
6521
6522
6523 function nodeLinkFn(childLinkFn, scope, linkNode, $rootElement, boundTranscludeFn) {

Callers 1

nodeLinkFnFunction · 0.85

Calls 3

isArrayFunction · 0.85
forEachFunction · 0.85
isStringFunction · 0.70

Tested by

no test coverage detected