user4773604
user4773604

Reputation: 451

AngularJs call parent controller function with parameter

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

Answers (2)

HankScorpio
HankScorpio

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

stackg91
stackg91

Reputation: 594

Check this plunkr, maybe this can help you

plunkr

access parentfunction in child controller

Upvotes: 0

Related Questions