根据angular.js中的Transclusion的定义" 启用了transclude,视图中welcome元素内存在的任何内容都将附加到模板中具有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>
Angular Code: -
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
下的内容会被销毁,但是当我在div中ng-transclude
时,它可以正常工作。根据定义在此处进行的转换表示值将附加到标签之间的任何内容。如果我错了,请收我。