所以我关注了自定义组件的
this EggHead.io tutorial,我遇到这个问题.当声明一个指令如:
angular.module('myApp',[]) .directive('myDir',function(){ return { restrict: "E",controller: "myController",link: function(scope,element,attrs) { scope.foo = element.text(); },templateUrl: "myDirTemplate.html" } });
而模板是:
<div>The value is: {{foo}}</div>
并使用如下指令:
<html> ... <myDir>Bar</myDir> ... </html>
<div>The value is: {{foo}}</div>
在模板中.如果我没有指定templateUrl,那么元素指的是
<myDir>Bar</myDir>
在主视图中,这是我想要的.我希望这个指令能够将“Bar”文本插入到{{foo}}中,给出最终结果:
<div>The value is: Bar</div>
但是我不知道如何在每个角度选择模板的元素.
有任何想法吗?
解决方法
您需要使用
ngTransclude:
app.directive('myDir',function(){ return { restrict: "E",transclude: true,templateUrl: "myDirTemplate.html",replace: true } });
然后你的外部模板变成类似于:
<div>The value is: <span ng-transclude></span></div>