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的遞歸爬行不會太重。 –