AngularJS Transcluded指令的范围来自其他指令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AngularJS Transcluded指令的范围来自其他指令相关的知识,希望对你有一定的参考价值。
我得到了一个被转移的指令,例如'aDirective'和其他随机'bDirective'指令。我的任务是:我希望得到一个'aDirective的范围变量并在'bDirective'中捕获它。
angular.module('myApp',[])
.controller('bDirective',['$scope',function(scope){
scope.getScopeVar = function () {
// here I want to get aDirective - s 'someVar' variable
scope.someVar;
debugger;
};
scope.getScopeVar();
}])
.directive('aDirective',function(){
return{
scope:{},
transclude:true,
template:'<div>123</div>',
link: function(scope, element, attrs, controller, transclude){
scope.someVar = 'asd';
transclude(scope, function (clone) {
element.append(clone);
});
}
};
});
有解决方案吗关心尼克。
答案
嵌套指令应该是require
the directive from the top。然后它可以接收它的控制器作为link
函数参数(第4个)。
.directive('nestedDirective', function(){
return {
require: '^aDirective',
link: function (scope, elements, attrs, aDirectiveController) {
// access aDirectiveController's methods or properties
}
}
})
以上是关于AngularJS Transcluded指令的范围来自其他指令的主要内容,如果未能解决你的问题,请参考以下文章