简而言之,我试图将我的指令中的数据集传递回其父控制器。我已经看到了这方面的一些细微差别,但在某个地方,我错过了一些东西,而我所做的并不是很有效。我有一个指令,从父节点接收回调定义,如下所示:
<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);
};
当前选择变量在指令范围内定义,并通过下拉列表框中的选择进行设置。发生的事情是,在上面的函数中,它调用父回调,发现它没问题,传递好的数据,但是当它到达父端时,参数为空。我对此并不熟悉,但我认为&#39;&amp;&#39;会让我把数据传回给父母。任何帮助将不胜感激!
答案 0 :(得分:0)
为了将参数传递给绑定function
,必须将参数作为对象传递,对象的键是绑定函数的参数名称,如下所示:
$scope.updateSelection = function() {
$scope.updateParent({newData:$scope.currentSelection});
};