嵌套子指令根元素如何在父指令根元素的同一级别工作?

时间:2014-09-24 17:22:09

标签: javascript angularjs angularjs-directive

您好,我目前处于无法在任何地方找到解决方案的情况,

我想知道如何以及是否可以将指令根元素的内容替换为从嵌套(子)指令声明的内容。

<div id=”main”>
  <nav>
     <main-directive></main-directive>
  </nav>
</div>

//mainDirective’s template
<div id=”mainDir>
  <p>Hello World </p>
  <child-directive></child-Directive>
</div>

//childDirective’s template
<div id=”childDir”>
  <p>I conquered the world</p>
</div>

我实际上要做的是,当我从mainDirective应用ng-click时,childDirective会出现在mainDirective上,替换div所在位置,所以在这种情况下  将被childDirective的根元素替换 另外,当我点击后退按钮时,childDirective会隐藏,并且会再次显示父级的根元素。

- &gt; mainDirective-&gt; onClick() - &gt; childDirective - &gt; OnBackClick() - &gt; mainDirective

发生这种情况的一个例子来自这里,我正在实现类似的东西,但是我没有得到与此源代码相同的结果,并且在完全打破之后我没有看到我的错误。

https://github.com/wuxiaoying/angular-multilevelpushmenu
我试着更简单的水平 plunker

1 个答案:

答案 0 :(得分:0)

所以你实际上可以使用简单的JavaScript命令:

//mainDirective’s template
<div id=”mainDir>
  <p>Hello World </p>
  <div id="childcontent"></div> 
// This is the new DIV where the Content of the childDir div will be after clicking the button.
</div>

//childDirective’s template
<div id=”childDir”>
  <p>I conquered the world</p>
</div>

所以创建一个函数来替换child子内容中的内容,该内容是childDir的内容

function replacecontent()
{
    document.getElementById('childcontent').innerHTML = document.getElementById('childDir').innerHTML;
}

问候