2015-06-09 100 views
0

我正试图通过调用视图回调中提供的指令将资源从指令范围公开给控制器范围。 但是参数变量是undefined。我错过了什么?将指令传递给控制器​​

这里有一个小提琴例如:https://jsfiddle.net/xqknpe5d/

查看

<div on-my-event="doStuff(foo)"></div> 

指令

App.directive('myDirective', ['$whateverModule', function($module) { 
    return { 
    restrict: 'A', 
    scope: { 
     onMyEvent: '&' 
    }, 
    link: function(scope, element, attrs) {   
     (scope.onMyEvent) && (scope.onMyEvent('moo'));   
    } 
    }; 
}]); 

控制器

ctrls.controller('myController', ['$scope', function($scope) { 
    $scope.doStuff = function(foo) { 
    console.log('moo: ', foo); 
    }; 
}]); 

欣赏你的帮助这样

回答

2

呼叫功能onMyEvent在你的指令你的链接功能。您必须发送带有参数名称('foo')的对象作为关键字,并将'moo'作为值发送。

link: function(scope, element, attrs) {   
     (scope.onMyEvent) && (scope.onMyEvent({foo: 'moo'}));   
    } 

Read more about & binding here

+0

非常感谢 – kidwon

相关问题