在组件控制器之间传递数据到主控制器

时间:2016-06-27 12:05:58

标签: angularjs components

在我的角度应用程序中,我只有一个组件。 我想从组件控制器调用mainMethod主控制器。

主控制器

app.controller("mainController",function($scope)
{
   $scope.mainMethod = function()
   {
     console.log("its working");
   }
})

主视图

<card call-method="mainMethod()"><card>

组件控制器

app.component("card",{
   bindings:{
      callMethod:'&'
   },
   controller:compController,
   template:"<button on-click="$ctrl.triggerMethod()">call<button>"
})

function compController()
{
   function triggerMethod()
   {
      callMethod();
   }
}

1 个答案:

答案 0 :(得分:0)

您忘了将triggerMethod绑定到组件的$ctrl,并且也应该调用$ctrl.callMethod()

function compController() {
  var $ctrl = this;

  $ctrl.triggerMethod = function triggerMethod() {
    $ctrl.callMethod();
  };
}

此外,您必须更新模板并使用ng-click代替on-click