В соответствии с определением Transclusion в angular.js: «При включенном Transclude все, что существует внутри элемента приветствия в представлении, будет добавлено к содержимому любого элемента в шаблоне, имеющего атрибут ng-transclude. >", я пытался понять следующее поведение: -
<html>
<head>
<title>AngularJS Services</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0-beta.5/angular.min.js"></script>
<script type="text/javascript" src="abc.js"></script>
</head>
<body ng-app="myApp">
<tab>
hello world
</tab>
</body>
</html>
Угловой код: -
var myApp=angular.module('myApp',[]);
function tab(){
return {
restrict : "E",
transclude: true,
template: '<h2 ng-transclude>Hello world!</h2>\
<div role="tabpanel" ng-transclude>kickass</div>',
scope: {},
link: function(scope,element,attrs){}
};
};
myApp.directive('tab',tab);
Теперь, если вы дадите ng-transclude
внутри тега h2
, содержимое под h2
будет уничтожено, однако, когда я даю ng-transclude
в div, все работает нормально. Включение здесь в соответствии с определением говорит о том, что значения будут добавлены ко всему, что находится между тегами. Пожалуйста, собери меня, если я ошибаюсь.