![](/img/trans.png)
[英]AngularJS : How to transclude and have both isolate scope and parent scope?
[英]AngularJS isolate scope how to add to correct parent scope?
我有一个指令“ outerDirective”,它具有作为指令的子代,并且具有作为指令的子代。 如何将孙子指令范围添加到正确的子指令范围? 我希望这是有道理的。 这是显示代码的小提琴。 看来我需要在子指令而不是控制器实例中与作用域方法进行通信。 http://jsfiddle.net/hcabnettek/DMhUL/ html就是这样
<div class="my-outer-directive">
<div class="my-inner-directive" id="foo1">
<div class="my-inner-inner-directive"></div>
<div class="my-inner-inner-directive"></div>
</div>
<div class="my-inner-directive" id="foo2"></div>
<div class="my-inner-directive" id="foo3">
<div class="my-inner-inner-directive"></div>
<div class="my-inner-inner-directive"></div>
<div class="my-inner-inner-directive"></div>
<div class="my-inner-inner-directive"></div>
</div>
我期望foo1范围具有一个具有2个范围的subscriptions属性foo2范围,具有0个范围的subscription属性以及foo3具有4个范围的subscription属性。 我相信它们都已添加到单例控制器实例中。 如何将内部-内部指令链接到适当的范围。 像嵌套的手风琴一样。 任何帮助都会很棒。
子指令与父指令至少有两种通信方式:
使用指令配置对象上的require属性来访问子级内部的父指令控制器,如下所示:
.directive('parent', function() {
return {
controller: function() {
this.parentFn() {
//do stuff.
}
}
}
})
.directive('child', function() {
return {
require: '^parent',
link: function(scope, element, attrs, parentCtrl) {
parentCtrl.parentFn(); //this will execute the parent function here
}
}
});
或者,将函数传递给模板中的child指令,如下所示
<child parent-fn=parentFn()></child>
.directive('child', function() {
return {
scope: {
parentFn: '&' // this function is now available on child's scope
}
}
});
这样,不是直接访问其子级的父级,而是能够访问某些父级方法的子级,希望能有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.