1

我创建了一个指令,用于显示另一个指令的示例,该指令用作类似引导程序的文档页面的一部分。这是一个例子:

<an-example>
  <input ng-model="name" an-spellcheck />
</an-example>

我希望它复制放置在其中的标记并将其放入<code>标签中以显示您需要使用该指令的标记。

但是ng-model将类添加到输入中,使其:

<input class="ng-scope ng-pristine" ng-model="name" an-spellcheck />

相反,该example指令应捕获:

<input ng-model="name" an-spellcheck />

但是,在任何内部指令运行之前,我似乎无法访问嵌入的内容。这是一个证明问题的plunker

controllerpreLinkpostLink函数中,输入已经具有来自 的 css 类ng-model

有没有办法example在 Angular 编译子指令之前访问指令的内容?

4

1 回答 1

0

这是不可能的,因为 ngTransclude 的优先级为 0,而 ngModel 的优先级为 1(编译顺序是从高到低)。因此 ngModel 总是首先被编译。可以更改指令的优先级以使其在 ngModel 之前编译,但稍后将应用 transclude

ngModel 优先级: https ://docs.angularjs.org/api/ng/directive/ngModel

ngTransclude 优先级: https ://docs.angularjs.org/api/ng/directive/ngTransclude

于 2014-11-04T21:06:36.523 回答