转换内容中的访问指令范围

时间:2017-05-12 05:20:38

标签: angularjs-ng-transclude

我创建了一个带有transclude功能的指令。我在模板中提供了默认内容,因此用户可以提供自定义内容或使用默认内容。在转换内容中,我需要访问指令范围的功能。我发现默认内容没有问题,但它不适用于自定义内容。这是代码:

<script>
angular.module('app').directive('myDirective', function () 
{ 
return { 
restrict: 'EA', 
replace: true, 
transclude: {"Result":"?uploaderResult"}, 
controller: function ($scope){ 
$scope.doSth1=function(){} 
$scope.doSth2=function(){} }, 
templateUrl:"template.html" });
</script>

并且template.html是

<div ng-transclude="Result">
<a ng-click="doSth1()">Default Content</a>
</div>

这可以按预期工作。使用该指令的页面:

<uploader-result>
<a ng-click="doSth1()">Customized Content</a>
</uploader-result>

这不起作用。我用Google搜索,发现我可以使用$$ nextSibling.doSth1(),这没关系。但是如果使用ng-repeat调用doSth1(),它将再次停止工作。我把它改成了$ parent。$$ nextSibling.doSth1(),仍然没有用。

提前致谢。

0 个答案:

没有答案