我正在寻找任何方式访问“父”范围内的指令。范围、排除、要求、从上面传入变量(或范围本身)等的任何组合。我完全愿意竭尽全力,但我想避免一些完全俗气或无法维护的东西。例如,我知道我现在可以通过从preLink参数中获取$范围并迭代它的$sibling范围来找到概念上的“父”。
我真正想要的是能够在父作用域中监视一个表达式。如果我能做到这一点,那么我就能完成我在这里想做的事情: AngularJS -如何渲染变量的部分?
需要注意的是,该指令必须在相同的父作用域内可重用。因此,默认行为(范围:false)不适合我。我需要每个指令的实例都有一个单独的作用域,然后我需要$watch一个存在于父作用域中的变量。
一个代码示例值1000字,因此:
app.directive('watchingMyParentScope', function() {
return {
require: /* ? */,
scope: /* ? */,
transclude: /* ? */,
controller: /* ? */,
compile: function(el,attr,trans) {
// Can I get the $parent from the transclusion function somehow?
return {
pre: function($s, $e, $a, parentControl) {
// Can I get the $parent from the parent controller?
// By setting this.$scope = $scope from within that controller?
// Can I get the $parent from the current $scope?
// Can I pass the $parent scope in as an attribute and define
// it as part of this directive's scope definition?
// What don't I understand about how directives work and
// how their scope is related to their parent?
},
post: function($s, $e, $a, parentControl) {
// Has my situation improved by the time the postLink is called?
}
}
}
};
});