AngularJs在控制器的链接中调用函数

时间:2015-04-29 07:02:38

标签: javascript angularjs directive

我有一个父控制器,我想在控制器的链接中调用一个函数但是当试图访问它时

TypeError: undefined is not a function

我的控制器:

scope.test = function(m)
{
 linkfunction(m);
}

我的指示:      ..........      link:function(scope,element,attrs){

 linkfunction = function (n){
  ........somethings........
  }

  ..........
  }

如何从指令调用链接中的函数?

1 个答案:

答案 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();
         }
     }
 })