转换未注入链接功能

Uda*_*ddy 5 javascript angularjs angularjs-directive angularjs-ng-transclude

这是我的代码

'use strict';
angular.module('app')
    .directive('item'
            , ["$timeout"
            , "$Service"
            , function(
                $timeout
                , $utils) {
    return {
        restrict: 'A',
        scope: {
            item: '=',
        },
        transclude: true,
        link: function(scope, element, attrs, ctrl, transclude){
        },
        templateUrl: $fsUtils.getRelativeUrl('templates/item.html'),
        controller: 'ItemCtrl', 
    };
}]);
Run Code Online (Sandbox Code Playgroud)

我的index.html:

<item><div>Transcluded content.</div></item>
Run Code Online (Sandbox Code Playgroud)

transclude变量是undefined和ctrl变量是proto__: Object.我需要将父范围注入transcluded范围.transclude变量未定义.我哪里错了.

我的角度版本是1.1.5

谢谢.

Sid*_*war 0

您正在寻找的是 transcludeFn。尝试这个:

transclude: true,
transcludeFn: function () { /*do your stuff here*/ },
...
link: function(scope, element, attrs, controller, transcludeFn)
Run Code Online (Sandbox Code Playgroud)

要访问链接功能中的控制器,您可以执行以下操作:

var controller = scope.controller;
Run Code Online (Sandbox Code Playgroud)