Reputation: 451
I have two controller's and I want to call other parent controller function with parameter when user clicks the button.
Html
<a ng-click='test('something')'>Click</a>
Controller
controller: function($scope) {
..........
$scope.test= $scope.$parent.parentTest(t);// it fails...
..........}
Parent Controller
$scope.parentTest= function(m) {
var my=m;
...Something...
}
If I run function without any parameter, it works. If I run the function with parameter it doesn't.
I want to call parent function with parameter.
Upvotes: 2
Views: 15176
Reputation: 3651
The mistake in your code is with this line:
//This assigns the RESULT of parentTest() to $scope.test
$scope.test= $scope.$parent.parentTest(t);
// Either of the 2 options below will probably work for you.
//This assigns the parentTest Function itself to $scope.test
$scope.test= $scope.$parent.parentTest;
//This wraps it safely in case the parentTest function isn't ready when
// this controller initializes
$scope.test= function(t){$scope.$parent.parentTest(t)}; // << Change it to this!
Upvotes: 4
Reputation: 594
Check this plunkr, maybe this can help you
plunkr
access parentfunction in child controller
Upvotes: 0