2014-09-25 59 views
0

简而言之,我试图将指令中的数据集传递回其父控制器。我已经看到了这方面的几个细微差别,但是我错过了一些东西,而我正在做的并不是很有效。我有一个接收来自父回调定义,像这样一个指令:从角度指令调用父控制器

<my-directive my-list="myData" update-parent="parentCallback(newData)"> 

父控制器的回调是很简单,但输入的数据为空:

$scope.parentCallback = function(newData) { /* when it gets here its null */ }; 

的定义指令是像这样:

myModule.directive('myDirective', function() { 
return { 
    restrict: 'E', 
    templateUrl: 'Template.html', 
    replace: true, 
    scope: { myData: '=', updateParent: '&' }, 
    controller: function($scope, $element, $attrs) {...} 

在该指令的控制器的选择事件试图通过回调像这样推回数据:

$scope.updateSelection = function() { 
    /* here the data is good */ 
    $scope.updateParent($scope.currentSelection); 
}; 

当前选择变量在指令的作用域中定义,并通过在下拉列表框中进行选择来设置。发生的事情是,在上面的函数中,它调用父回调,发现它没问题,传递好数据,但是当它到达父侧时,参数为空。我对此并不陌生,但我认为'&'将为我提供数据备份给父母。任何帮助将不胜感激!

+0

莫非你请让我知道如果我的答案解决了您的问题,如果确实如此,您能否接受答案?谢谢! – Josep 2014-09-25 23:38:00

回答

0

为了将参数传递给绑定function参数具有作为一个对象传递,是对象的键绑定功能的参数名称,像这样:

$scope.updateSelection = function() { 
    $scope.updateParent({newData:$scope.currentSelection}); 
}; 
+0

这是完全有道理的。谢谢! – 2014-09-25 23:50:41