我有一个控制器和一个指令。在指令的link函数中,我调用了一个控制器函数。当调用控制器函数时,我想访问控制器函数内部的控制器范围。但是我将$ scope视为未定义。如何访问当前范围。这是小提琴http://jsfiddle.net/9t294ox6/1/
我可以使用“this”关键字访问范围,但$ scope未定义。为什么会这样?
这是我的指示
app.directive('myDirective', function() {
return {
scope: { someCtrlFn: '&callbackFn' },
link: function(scope, element, attrs) {
scope.someCtrlFn({arg1: 22});
},
}
});
我的控制器
function MyCtrl($scope) {
$scope.ctrlFn = function(test) {
//Want to access scope here
debugger
console.log(test);
}
}
我的HTML
<div ng-controller="MyCtrl">
<div my-directive callback-fn="ctrlFn(arg1)"></div>
</div>