2014-09-25 200 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