我有一个父控制器,我想在控制器的链接中调用一个函数但是当试图访问它时
TypeError: undefined is not a function
我的控制器:
scope.test = function(m)
{
linkfunction(m);
}
我的指示: .......... link:function(scope,element,attrs){
linkfunction = function (n){
........somethings........
}
..........
}
如何从指令调用链接中的函数?
答案 0 :(得分:0)
1)使用隔离范围
<强> HTML 强>
<div test-directive callback-fun="testFunction()"></div>
<强>控制器:强>
$scope.testFunction = function(){
console.log("test")
}
<强>指令:强>
.directive('testDirective', function() {
return {
scope: {
callbackFun: '&'
},
link: function(scope, element, attrs)
{
scope.callbackFun();
}
}
})
2)不使用隔离范围
<强> HTML:强>
<div test-directive></div>
<强>控制器:强>
$scope.testFunction = function(){
console.log("test")
}
<强>指令:强>
.directive('testDirective', function() {
return {
link: function(scope, element, attrs)
{
scope.testFunction();
}
}
})