0
我有一个指令,我希望它使用不同的templateUrl:
,具体取决于它是否被parentDirective
包装。孩子的link:
函数的第四个参数(父控制器)似乎是确定是否有父控制器的地方,因为require: ?^parentDirective
返回null
如果找不到父项,但我似乎无法弄清楚如何翻译这到templateUrl
的选择。我对$compile
的理解是,我可以使用templateUrl: function()
,但我似乎无法使其工作。也许我有范围问题。确定子指令是否嵌套在父指令中
link: function(scope, element, attributes, parentCtrl) {
...
scope.wrapped = function() {
return parentCtrl ? true : false;
}
}
如果检查elem.parent()(或它的父母)有父指令是什么?您只能访问链接函数中的'?^ parentDirective'对象,但您需要知道在链接运行之前,templateUrl函数 – JoseM
请检查http://plnkr.co/edit/sAvsycXavbJ5er1xdQYy?p=preview – JoseM
@JoseM非常好(做作和简单)的例子。感谢那。我也会玩另一个选项,看看我想出了什么。我认为DOM的递归爬行不会太重。 –