如何在angularjs中使用transclusion?

use*_*400 4 javascript javascript-framework angularjs

在John Lindquist教程中,transclusion用于从指令中获取一些内容并将其放在所需的位置.

但是文档讨论了translude函数并将其传递给控制器​​和编译函数.那么,什么是翻译,我该如何使用它呢?

Jos*_*ler 16

创建基本指令时,转换很容易:

module.directive( 'myTransDir', function () {
  return {
    transclude: true,
    scope: true,
    replace: true,
    template: '<div><h1>Hello!</h1><div ng-transclude></div></div>',
  };
});
Run Code Online (Sandbox Code Playgroud)

因为模板包含ngTransclude指令,所以它会自动为我转换内容.如果我像这样使用它:

<div my-trans-dir>
  <p>Some Content</p>
</div>
Run Code Online (Sandbox Code Playgroud)

结果HTML将是:

<div>
  <h1>Hello!</h1>
  <div>
    <p>Some Content</p>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)


Mar*_*cok 6

@Josh已经涵盖了ngTransclude.这是用于翻译的"正常用例".

您还在文档中询问了这些陈述:

controller - 控制器构造函数...
控制器可注入以下本地:
...
$ transclude - 预绑定到正确的转换范围的转换链接函数:function(cloneLinkingFn).

编译函数处理转换模板DOM ...
编译函数采用以下参数.
...
transclude - 一个transclude链接函数:function(scope,cloneLinkingFn).

我认为这些深奥的翻译用例.我个人在stackoverflow上只看到过一次这样的提及,我将在那里推荐你:
你究竟对transclude函数和克隆链接函数做了什么?

来自@blesh的引用:"这两种翻译方法可以让你通过编程访问流程控制所有关于你的翻译."

更新:我发现了一篇关于翻译的好文章.


归档时间:

查看次数:

5729 次

最近记录:

10 年,11 月 前