在指令中访问已编译的模板

时间:2013-06-07 08:46:40

标签: javascript angularjs angularjs-directive

如果我在链接函数中执行elm.html(),那么我将获得带有{{curly_brackets}}的未编译模板。如何访问已编译的html,其中{{template_variables}}已被正确的范围变量替换。

如果指令无法做到这一点那么什么是一个好的替代解决方案?最终,该指令的目的是获得编译元素的高度。

以下是一个示例小提琴:http://jsfiddle.net/RfHx8/1/

1 个答案:

答案 0 :(得分:0)

在检查高度之前,你必须让Angular完成。为此,您可以使用setTimeout(或最好是$timeout service),延迟为零:

link: function(scope, elm, attrs) {
  $timeout(function(){
    var height = elm.height();
  },0,false);// No delay is necessary
 }

请参阅更新以获取示例:http://jsfiddle.net/RfHx8/2/