在John Lindquist教程中,transclusion用于从指令中抓取一些内容,并将其放在所需的位置。
但文档中提到的是转换函数,并将其传递给控制器和编译函数。那么,什么是转置,我如何使用它呢?
发布于 2013-01-25 04:52:53
在创建基本指令时,转换很简单:
module.directive( 'myTransDir', function () {
return {
transclude: true,
scope: true,
replace: true,
template: '<div><h1>Hello!</h1><div ng-transclude></div></div>',
};
});因为该模板包含ngTransclude指令,所以它将自动为我转换内容。如果我这样使用它:
<div my-trans-dir>
<p>Some Content</p>
</div>生成的HTML将是:
<div>
<h1>Hello!</h1>
<div>
<p>Some Content</p>
</div>
</div>发布于 2013-01-25 06:29:26
@Josh已经报道了ngTransclude。这是转译的“正常用例”。
您还询问了文档中的这些陈述:
控制器-控制器构造函数...
控制器可以通过以下本地变量注入:
..。
$transclude -预先绑定到正确的转换作用域的转换链接函数: function(cloneLinkingFn)。
和
编译函数处理模板DOM的转换...
compile函数接受以下参数。
..。
transclude -A transclude链接函数:函数(scope,cloneLinkingFn)。
我认为这些深奥的移位用例。我个人在stackoverflow上只看到一次提到这些,我会在那里推荐你:
What exactly do you do with the transclude function and the clone linking function?
引用@blesh的话:“这两种转换方法是为了让你能够通过对过程的编程访问来控制你的转换的一切。”
更新:我找到了一个关于转换的很好的blog post。
发布于 2013-01-25 04:35:44
Johns在egghead.io上的“构建Zippy”教程是我见过的关于变形的最好的描述。两种说法都是对的,John只是举了个例子,但在幕后发生的事情是,标记中的html被放入带有模板的编译器中。在他的教程中,John意外地在模板中留下了内容,您可以看到angular的编译器如何连接标记html和模板html。
https://stackoverflow.com/questions/14509959
复制相似问题