我正在学习angularjs。我陷入了transclusion属性中,这让我感到困惑.ng-transclude如何工作?它会使用已包含元素(要被包含的元素)替换标有ng-transclude的dom内的内容,还是将附加元素包含在标有ng-transclude的dom中?

我引用了Egghead Anglejs视频教程的包含属性
https://egghead.io/lessons/angularjs-transclusion-basics

有人提到ng-transclude只是将被包含的元素附加到标有ng-transclude的dom上。但是当我尝试这样做时,事实并非如此。

这是我的html文件

learning.hmtl

<html ng-app="learnangular">
<head>
    <title></title>
    <script type="text/javascript" src="angular.js"></script>
    <script type="text/javascript" src="learnscript.js"></script>
</head>
<body>
<div ng-controller="firstcontroller">
<custom-directive><div>This is transcluded part</div></custom-directive>
</div>
</body>
</html>


这是我的脚本文件
学习脚本

var app=angular.module("learnangular",[]);

app.controller("firstcontroller",function($scope){
$scope.dirobject="directive object";
});

app.directive("customDirective",function(){

    return {

   restrict:"E",
   transclude:true,
   replace:false,
   template:"<input type='text' ng-model='dirobject'></input>"+
   "<div ng-transclude>{{dirobject}}</div>",

   link:function(scope,element,attr){
   }
    };
});


ng-transclude会替换标有ng-transclude的dom内的内容。为什么?

最佳答案

我现在已经了解了。该视频是使用angular js 1.0.x录制的,而我使用的是最新版本。实际上,在最新版本中,嵌入标记会完全用ng-transclude属性替换元素的内容。在以前的版本中,将添加已包含的标记。感谢大家

10-04 16:06