简短的问题 如何使用Angular 1.1.1访问指令链接函数中的transclude函数?
我想要实现的目标
这是(破碎的)小提琴http://jsfiddle.net/michaeldausmann/7NXZs/
我正在尝试写一个'包装'指令......
<wrapper-dynamic>
<h2>Wrap me Dynamically!</h2>
</wrapper-dynamic>
...动态模板将包含ng-transclude ...
var tmpl = "<div>Dynamic Wrapper version {{wrapperVersion}}</div><hr/><div ng-transclude></div>";
...我在链接函数中编译它....
var thing = $compile(tmpl)(scope)
element.append(thing);
这失败并出现错误....“undefined不是函数”
我想我需要将一个transclude函数传递给$ compile ...
$ compile(tmpl,transcludefn)(范围)
但是我不确定如何访问转码函数...它似乎在链接函数参数中不可用,就像它在稍后版本的angular中一样。
迈克尔
答案 0 :(得分:1)
在AngularJS 1.2之前,您必须定义compile
函数以获取对transclude
函数的引用:
app.directive('myDirective', function($compile) {
return {
transclude: true,
compile: function compile(tElement, tAttrs, transcludeFn) {
return function postLink(scope, element, attributes) {
console.log(transcludeFn);
};
}
};
});