Javascript AngularJS:如何在不通过多个$parent导航的情况下访问最顶层的作用域?

Javascript AngularJS:如何在不通过多个$parent导航的情况下访问最顶层的作用域?,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,我知道这方面有很多问题,但我无法从中找到答案。 我的弹出窗口有一个指令,有很多模板 HTML 现在在另一个元素上,我定义了目标弹出窗口的模板名称 <button popup-template="upload-avatar"></button> 问题: 当我单击嵌套指令中的元素时。因为我需要处理: $scope.$parent.popupTemplate $scope.$parent.$parent.popupTemplate 这不是个好主意我需要知道如何使用唯一语法而

我知道这方面有很多问题,但我无法从中找到答案。
我的弹出窗口有一个指令,有很多模板

HTML

现在在另一个元素上,我定义了目标弹出窗口的模板名称

<button popup-template="upload-avatar"></button>
问题:
当我单击嵌套指令中的元素时。因为我需要处理:

$scope.$parent.popupTemplate
$scope.$parent.$parent.popupTemplate

这不是个好主意我需要知道如何使用唯一语法而不是多个$parent来访问第一个父作用域。

只需包装
poputemplate

<popup template="whatever.popupTemplate"></popup>
根本没有$parent

假设u有父作用域A和子作用域B。默认情况下,B复制A中的所有值。这里的复制表示指针

用java进行比较:

void bad(String s) {
    s = "new";
}

void good(String[] s) {
    s[0] = "new";
}

工作!非常感谢。但是,请您解释一下$scope.popup.template和$scope.popupTemplate的区别是什么?
$scope.$parent.popupTemplate
$scope.$parent.$parent.popupTemplate
<popup template="whatever.popupTemplate"></popup>
$scope.whatever.popupTemplate = $attrs.popupTemplate;
void bad(String s) {
    s = "new";
}

void good(String[] s) {
    s[0] = "new";
}