1

我有一个指令,它在我的主页中呈现一个视图模板和一些 js 代码,它试图在我的视图模板中获取一些元素。而且由于js代码是在模板渲染之前执行的,所以总是会出现未定义的错误,比如

<body ng-app="myApp">
<test></test>
<script src="angular.js"></script>
<script src="directives.js"></script>
<script>
    //try to get an element in directive and failed
    alert(document.getElementById('testdiv').innerHTML);
</script>
</body>

在directive.js 中很简单

angular.module('myApp', []).directive('test', function(){
  return {
      restrict: 'E',
      template: '<div id="testdiv">Hello</div>'
  }
});

我对角度不是很熟悉,您的帮助将不胜感激。谢谢

4

1 回答 1

1

将您的代码放入 JavaScript 函数 attach() 并从指令中的 Link 函数调用 attach() 函数

<body ng-app="myApp">
<test></test>
<script src="angular.js"></script>
<script src="directives.js"></script>
<script>
    //try to get an element in directive and failed
   function attach()
   { 
    alert(document.getElementById('testdiv').innerHTML);
   }
</script>
</body>

指令代码:

angular.module('myApp', []).directive('test', function(){
  return {
      restrict: 'E',
      template: '<div id="testdiv">Hello</div>', 
      link: function(scope, elm, attrs, ctrl) {
       attach()
      }

  }
});
于 2013-09-19T08:10:35.707 回答