将范围函数传递给克隆(和编译)的angular指令

时间:2015-08-21 12:59:49

标签: angularjs angularjs-directive angularjs-scope angularjs-compile

我有一个angular指令,它可以将父控制器函数作为属性。在DOM操作期间,此角度指令被克隆,编译并放置在DOM的开头部分。结果,传入的父控制器功能不再起作用,因为不再有父控制器。我该怎么解决这个问题?我可以在编译时将父控制器功能从原始函数传递给克隆吗?我试过这个,但它不起作用:

$timeout(function () {
        $scope.test ="passed content";
        var compiledClonedDirective = $compile(clonedDirective)($scope);
        divInTheBeginningPartOfTheDOM.prepend(clonedDirective);});
function getBack() {
   console.log($scope.test);
}

此getBack()函数用于克隆指令。激活后,它会记录未定义。任何提示?

1 个答案:

答案 0 :(得分:0)

一种解决方案是将父控制器功能复制到rootScope,然后在克隆和替换指令(指令控制器)中从rootScope调用它。但是如果可能的话,我想避免使用rootScope。