如何从父指令绑定指令的元素

时间:2016-10-13 22:19:18

标签: javascript angularjs angularjs-directive

所以我有一个指令,在模板中我有另一个指令。

<parent-directive>

父 - 指令-template.html:

<div>
  <child-directive>
</div>

儿童指令模板:

<input id="bind-me" />

完全编译它应该如下所示:

<div>
   <input id="bind-me" />
</div>

链接函数中的父对象想要绑定到输入的事件,但它不能,因为看起来子指令还没有被编译!

我记录了每个的前后链接,我得到了这个订单:

  1. &#39;父 - 预链接&#39;
  2. &#39;父 - postlink&#39;
  3. &#39;儿童预链接&#39;
  4. &#39;儿童postlink&#39;
  5. 我不明白如何绑定到child-directives输入元素(在子指令模板中找到)。他们都使用templateUrl,但两个模板都被缓存,所以这可能不是问题。

1 个答案:

答案 0 :(得分:0)

您可以观察输入是否存在,并在可用时进行绑定。

link: function(scope, element) {
  var unWatch = scope.$watch(
      function() {
        return element.find('$bind-me');
      },
      function (input) {
        if (input.length > 0) {
          unWatch();
          // bind here
        }
      }
  );
}