将范围函数传递给克隆(和编译)angular 指令
pass scope function to cloned(and compiled) angular directive
我有一个 angular 指令,它可以将父控制器函数作为属性。在 DOM 操作期间,此 angular 指令被克隆、编译并放入 DOM 的开头部分。结果,传入的父控制器函数不再起作用,因为不再有父控制器。我该如何解决这个问题?我可以在编译时将父控制器功能从原始控制器传递给克隆吗?我试过这个,但它不起作用:
$timeout(function () {
$scope.test ="passed content";
var compiledClonedDirective = $compile(clonedDirective)($scope);
divInTheBeginningPartOfTheDOM.prepend(clonedDirective);});
function getBack() {
console.log($scope.test);
}
克隆的指令中使用了此 getBack() 函数。当它被激活时,它记录未定义。有什么提示吗?
一个解决方案是将父控制器函数复制到 rootScope,然后在克隆和替换的指令(指令的控制器)中从 rootScope 调用它。但我想尽可能避免使用 rootScope。
我有一个 angular 指令,它可以将父控制器函数作为属性。在 DOM 操作期间,此 angular 指令被克隆、编译并放入 DOM 的开头部分。结果,传入的父控制器函数不再起作用,因为不再有父控制器。我该如何解决这个问题?我可以在编译时将父控制器功能从原始控制器传递给克隆吗?我试过这个,但它不起作用:
$timeout(function () {
$scope.test ="passed content";
var compiledClonedDirective = $compile(clonedDirective)($scope);
divInTheBeginningPartOfTheDOM.prepend(clonedDirective);});
function getBack() {
console.log($scope.test);
}
克隆的指令中使用了此 getBack() 函数。当它被激活时,它记录未定义。有什么提示吗?
一个解决方案是将父控制器函数复制到 rootScope,然后在克隆和替换的指令(指令的控制器)中从 rootScope 调用它。但我想尽可能避免使用 rootScope。