(childLinkFn, scope, linkNode, $rootElement, boundTranscludeFn)
| 9025 | } |
| 9026 | |
| 9027 | function nodeLinkFn(childLinkFn, scope, linkNode, $rootElement, boundTranscludeFn) { |
| 9028 | var i, |
| 9029 | ii, |
| 9030 | linkFn, |
| 9031 | isolateScope, |
| 9032 | controllerScope, |
| 9033 | elementControllers, |
| 9034 | transcludeFn, |
| 9035 | $element, |
| 9036 | attrs, |
| 9037 | removeScopeBindingWatches, |
| 9038 | removeControllerBindingWatches; |
| 9039 | |
| 9040 | if (compileNode === linkNode) { |
| 9041 | attrs = templateAttrs; |
| 9042 | $element = templateAttrs.$$element; |
| 9043 | } else { |
| 9044 | $element = jqLite(linkNode); |
| 9045 | attrs = new Attributes($element, templateAttrs); |
| 9046 | } |
| 9047 | |
| 9048 | controllerScope = scope; |
| 9049 | if (newIsolateScopeDirective) { |
| 9050 | isolateScope = scope.$new(true); |
| 9051 | } else if (newScopeDirective) { |
| 9052 | controllerScope = scope.$parent; |
| 9053 | } |
| 9054 | |
| 9055 | if (boundTranscludeFn) { |
| 9056 | // track `boundTranscludeFn` so it can be unwrapped if `transcludeFn` |
| 9057 | // is later passed as `parentBoundTranscludeFn` to `publicLinkFn` |
| 9058 | transcludeFn = controllersBoundTransclude; |
| 9059 | transcludeFn.$$boundTransclude = boundTranscludeFn; |
| 9060 | // expose the slots on the `$transclude` function |
| 9061 | transcludeFn.isSlotFilled = function (slotName) { |
| 9062 | return !!boundTranscludeFn.$$slots[slotName]; |
| 9063 | }; |
| 9064 | } |
| 9065 | |
| 9066 | if (controllerDirectives) { |
| 9067 | elementControllers = setupControllers($element, |
| 9068 | attrs, |
| 9069 | transcludeFn, |
| 9070 | controllerDirectives, |
| 9071 | isolateScope, |
| 9072 | scope); |
| 9073 | } |
| 9074 | |
| 9075 | if (newIsolateScopeDirective) { |
| 9076 | // Initialize isolate scope bindings for new isolate scope directive. |
| 9077 | compile.$$addScopeInfo($element, |
| 9078 | isolateScope, |
| 9079 | true, |
| 9080 | !(templateDirective && |
| 9081 | (templateDirective === newIsolateScopeDirective || |
| 9082 | templateDirective === newIsolateScopeDirective.$$originalDirective))); |
| 9083 | compile.$$addScopeClass($element, true); |
| 9084 | isolateScope.$$isolateBindings = |
no test coverage detected