0
我有一個HTML頁面和父控制器:如何從父級傳遞一個子控制器上的函數並傳遞一個參數?
<a data-ng-click="callChild('x')"></a>
$scope.callChild = function (task) {
}
我怎樣才能讓這個點擊該鏈接,然後在功能callChild是 在子控制器執行和參數傳遞給孩子控制器功能?
我有一個HTML頁面和父控制器:如何從父級傳遞一個子控制器上的函數並傳遞一個參數?
<a data-ng-click="callChild('x')"></a>
$scope.callChild = function (task) {
}
我怎樣才能讓這個點擊該鏈接,然後在功能callChild是 在子控制器執行和參數傳遞給孩子控制器功能?
父控制器可以通過使用$broadcast
來通知子控制器。
下面是一些例子Live Demo:
HTML
<div ng-controller="ParentCtrl">
<a data-ng-click="callChild('x')">Click me</a>
<div ng-controller="ChildCtrl">
</div>
</div>
JS
var fessmodule = angular.module('myModule', []);
function ParentCtrl($scope, $timeout) {
$scope.callChild = function (val) {
$scope.$broadcast('someEvent', val);
};
}
function ChildCtrl($scope) {
$scope.$on('someEvent', function (event, val) {
alert('from child ' + val);
});
}
參考
$廣播 - 向下分派事件到所有子範圍,
$發出 - 通過作用域層級向上調度事件。
我可以問一下,'小孩控制器'是什麼意思? – Sprottenwels