5

Đây là mã của tôiTransclude không tiêm trong chức năng liên kết

'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', 
    }; 
}]); 

index.html của tôi:

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

biến transclude là undefined và biến ctrl là proto__: Object. Tôi cần phải đưa phạm vi gốc vào phạm vi được chuyển đổi. Biến transclude không xác định. Tôi làm sai ở đâu.

Phiên bản góc của tôi là 1.1.5

Cảm ơn.

+0

Tôi có thể nhìn thấy 'item.html'? –

Trả lời

0

Điều bạn đang tìm kiếm là transcludeFn. Hãy thử điều này:

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

Để truy cập điều khiển chức năng liên kết mà bạn có thể làm điều này:

var controller = scope.controller; 
+0

Tôi hiểu rằng transclude được xác định trước bởi góc cạnh, trong trường hợp của tôi, nó không được xác định trong hàm liên kết của tôi. Đó là vấn đề. –

+0

Câu hỏi của tôi là tại sao bạn muốn truy cập nó trong chức năng liên kết? Đó là một phần của định nghĩa chỉ thị và nó sẽ thực hiện công việc của nó. Bạn đang cố tình bật/tắt tính năng chuyển đổi? –

+0

Tôi muốn điều này [this] (http://stackoverflow.com/questions/25641618/angular-transclude-ng-repeat-inside-directive#answer-27144559) –

Các vấn đề liên quan