2014-12-11 1 views
0

Я работаю с двумя директивами, в которых один шаблон директивы содержит вторую директиву. Я хотел бы использовать ng-transclude во второй (вложенной) директиве. Как я могу это сделать? Here is a plnkr.Ng-transclude с вложенными директивами

<body ng-app="transcludeExample"> 
<script> 
    angular.module('transcludeExample', []) 
    .directive('pane', function(){ 
     return { 
     restrict: 'E', 
     transclude: true, 
     scope: { title:'@' }, 
     template: '<div style="border: 1px solid black;">' + 
       '<div style="background-color: yellow">{{title}}</div>' + 
       '<test></test>' + 
       //'<ng-transclude></ng-transclude>' + 
       '</div>' 
     }; 
    }) 
    .directive('test', function(){ 
     return { 
     restrict: 'E', 
     transclude: true, 
     template: '<div><ng-transclude></ng-transclude></div>' 
     }; 
    }) 
    .controller('ExampleController', ['$scope', function($scope) { 
     $scope.title = 'Lorem Ipsuma'; 
     $scope.text = 'Neque porro quisquam est qui dolorem ipsum quia dolor...'; 
    }]); 
</script> 
<div ng-controller="ExampleController"> 
    <input ng-model="title"> <br/> 
    <textarea ng-model="text"></textarea> <br/><br/><br/><br/><br/><br/> 

    <pane title="{{title}}">{{text}}</pane> 
</div> 
</body> 
+0

вы пытались использовать компилятор угловой для компиляции бит кода внутри и дать его в качестве скомпилировано значение области? https://docs.angularjs.org/api/ng/service/$compile – sam

ответ

1

Не знаю, если я что-то не хватает, но это похоже на работу:

template: '<div style="border: 1px solid black;">' + 
      '<div style="background-color: yellow">{{title}}</div>' + 
      '<test><ng-transclude></ng-transclude></test>' + 
      '</div>' 
+0

Я понял это вскоре после размещения вопроса. Благодаря! – gwin003

 Смежные вопросы

  • Нет связанных вопросов^_^