我可以在自定义AngularJS指令中访问已编译的节点数据吗?

时间:2014-04-16 04:24:51

标签: angularjs angularjs-directive

我正在尝试编写一个指令来检查其中的内容值,以决定是否应该将某些类应用于该元素,以及格式化内容(如果指令是,则可能通过将内容强制转换为过滤器应用)。

我希望调用该指令的语法如下

<div my-directive>{{foo}}</div> 并输出类似<div ng-class='a?b:c'>{{foo | myFilter }}</div>

的内容

我知道使用<div my-directive='foo'></div>可以做到这一点,但我想知道我的首选方式是否可以在整个应用程序中实现一致性。

当我尝试在post-link函数中访问element.text()时,我只得到{{foo}}而不是渲染值。有没有办法在绑定到HTML后访问指令节点内容的值?

1 个答案:

答案 0 :(得分:0)

如果您希望获得{{foo}}表达式在您的指令中评估的值,您可以使用$eval$interpolate服务的组合,就像这样:

var fooValue = scope.$eval($interpolate(elem.text()));

这里有JSFiddle来演示。