无法访问$ compile指令中的父ctrl

时间:2015-10-09 08:33:51

标签: angularjs angularjs-directive

我正在研究AngularJS中的递归嵌套导航菜单。我有一个指令,它可以有任意数量的元素。看起来有点像这样:

<form>
<input type="url" name="link" value="http://jsfiddle .net/" pattern="[^\s]+"  title="please dont use the white space :)" required>

<button type="submit">OK</button>

root-nav指令包含RootNav控制器,我无法从DOM中的child指令访问此控制器。父控制器拥有一组可以在子指令中使用的方法,但我无法访问它。我不想要冗余代码(复制/粘贴方法到子控制器)。

我不想这样做

sub-nav-tree指令编译模板,所以我很确定它的$ compile部分是坏人。

这是子指令中链接函数的一部分:

<root-nav>
    <sub-nav-tree navData="menuItem">
</root-nav>

希望你们能帮我解决这个问题:)谢谢。

@Chandermani这里是子指令返回函数:

    if (scope.menuItem && scope.menuItem.children && scope.menuItem.children.length > 0) {

        $http.get('/markup/components/root-navigation/sub-navigation.html').then(function (response) {
            el.replaceWith($compile(response.data)(scope));
        });

    }

0 个答案:

没有答案