AngularJs使用参数调用父控制器函数

时间:2015-04-16 07:42:07

标签: javascript angularjs model-view-controller

我有两个控制器,我想在用户点击按钮时用参数调用其他父控制器功能。

HTML

<a ng-click='test('something')'>Click</a>

控制器

controller: function($scope) {
        ..........
   $scope.test= $scope.$parent.parentTest(t);// it fails...

..........}

家长控制器

$scope.parentTest= function(m) {

   var my=m;

   ...Something...

}

如果我在没有任何参数的情况下运行函数,它就可以了。如果我用参数运行该函数则不会。

我想用参数调用父函数。

2 个答案:

答案 0 :(得分:3)

代码中的错误在于这一行:

//This assigns the RESULT of parentTest() to $scope.test
$scope.test= $scope.$parent.parentTest(t);

//以下两个选项中的任何一个都可能适合您。

//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!

答案 1 :(得分:0)

检查这个plunkr,也许这可以帮助你

plunkr

access parentfunction in child controller