5

İşte benim kodTransclude

olan bağlantı işlevinde enjekte değil
'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', 
    }; 
}]); 

Benim index.html:

<item><div>Transcluded content.</div></item> 

transclude değişken undefined ve ctrl değişken proto__: Object olduğunu. Ana kapsamı transcluded kapsam içine enjekte etmem gerekiyor. Transclude değişkeni tanımsızdır. Nerede yanlış gidiyorum.

Benim açısal sürüm 1.1.5

teşekkürler olduğunu.

+0

ben 'item.html' görebilir miyim:

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

Bunu yapmanın bağlantı fonksiyonunda kontrolörü erişmek için? –

cevap

0

Aradığınız şey transcludeFn'dir. Bu deneyin:

var controller = scope.controller; 
+0

Transclude'nin açısal olarak önceden tanımlandığını anlıyorum, benim durumumda link işlevimde tanımlanmamış. Sorun şu ki. –

+0

Sorumu neden bağlantı işlevine erişmek istiyorsun? Direktif tanımının bir parçası ve işi yapacak. Şartlı olarak koşullu olarak açmayı/kapatmayı mı deniyorsunuz? –

+0

Bunu [bu] istiyorum (http://stackoverflow.com/questions/25641618/angular-transclude-ng-repeat-inside-directive#answer-27144559) –