从父指令中获取子指令中的元素

时间:2016-04-25 14:45:21

标签: angularjs angularjs-directive

如何在.second指令的second函数中从link指令获取类first的元素?

http://plnkr.co/edit/PiCyZzgvdwAuOyNKOi9E?p=preview

P.S它与template函数中的link一起使用,但我需要templateUrl

1 个答案:

答案 0 :(得分:2)

由于您使用的是templateURL,因此需要“下载”HTML,然后这是一个需要一段时间的异步事件。

你可以通过超时来解决这个问题,但由于你不知道等待多长时间,因此不会很干净。

如果<second>应该始终位于<first> 之内,是一个选项,一旦它准备好,就会从它自己的链接函数运行回调:< / p>

{
  restrict: "E",
  templateUrl:'second.html',
  link: function(scope) {
    scope.onSecondReady();
  }
}

检查此plunkr以获取完整代码:

http://plnkr.co/edit/NLdWaL8zRYkroGC7ZkYL?p=preview

现在,如果<second>应该可以在不同的上下文中重用,而不是总是在第一个中,那么您需要使用事件。一旦准备就绪,您可以使用scope.$emit('second-is-ready'),并从第一个听到它scope.$on('second-is-ready')