在我的父组件模板中,有一个嵌套组件。
<div class="inner" ng-show="!vm.loading">
<div class="info-panel">
<h3 id="basePrice">Current Cost</h3>
<p>
<small>
<a href role="button" data-toggle="modal" ng-click="vm.openCostsModal()">See Details</a>
</small>
</p>
</div>
......
......
<pricingcalculation></pricingcalculation>
此<pricingcalculation></pricingcalculation>
是嵌套组件。
它的定义如下:
(function () {
"use strict";
angular.module("app")
.component("pricingcalculation", {
transclude: true,
templateUrl: "/static/angtemplates/pricing-calculation.html",
controllerAs: "vm",
controller: ["$rootRouter", function ($rootRouter) {
var vm = this;
vm.openCostsModal = function () {
vm.costItems = [];
vm.projectedCostItems = [];
vm.totalOfCostItems = 0;
.....
.....
依据See Details
按钮点击在父模板上定义的
我希望调用子组件的函数openCostsModal()。
怎么做?
答案 0 :(得分:9)
您可以在父母中使用$broadcast
来广播某个活动,并在您的孩子中使用$on
来收听该活动。
像这样:
在父母:
$scope.$broadcast("someEvent");
在孩子:
$scope.$on("someEvent",function(){
//do stuff here
});