我有一个指令需要一个孤立的工作范围 它接收的参数之一是传递给ng-include
的templateUrl有没有办法告诉ng-include将其范围生成为调用我的指令的父范围的子范围? (与ng-transclude相同的事情 - 除了我已经在内部使用transclude,我需要一个额外的模板。
您可以查看当前指令https://github.com/lee-elenbaas/angular-multiline-ellipsis omsisUrl将被转换为
将变得更加可用答案 0 :(得分:4)
所以基本上,你想要的是从隔离范围中排除指令模板的一部分,并将其转换回父范围。
.directive('excludeFromIsolated', function() {
return {
restrict: "E",
transclude: true,
link: function (scope, elm, attr, ctrl, $transclude) {
$transclude(scope.$parent), function(clone){
elm.replaceWith(clone);
});
}
}
})
ngInclude
的元素:+ '<exclude-from-isolated>'
+ '<span ng-include="ellipsis" ng-style="ellipsisStyle"></span>'
+ '</exclude-from-isolated>'
scope.$parent.$new()
,但由于ngInclude
无论如何都会创建一个新的范围,所以它毫无意义。ngInlcude
已使用翻译