要从父控制器调用函数,可以使用指令的require
属性来获取父控制器的实例。然后可以使用link
函数或controller
函数来调用父控制器中的函数。
这是一个示例代码:
HTML:
JavaScript:
var app = angular.module('myApp', []);
app.controller('ParentController', function($scope) {
$scope.message = 'Hello from ParentController';
$scope.parentFunction = function() {
console.log($scope.message);
};
});
app.directive('customDirective', function() {
return {
restrict: 'E',
require: '^ParentController', // 获取父控制器的实例
link: function(scope, element, attrs, parentCtrl) {
parentCtrl.parentFunction(); // 调用父控制器的函数
}
};
});
在上面的示例中,customDirective
指令通过require: '^ParentController'
来获取父控制器的实例。然后在link
函数中,我们可以使用parentCtrl
来调用父控制器中的函数parentFunction()
。
当指令被渲染时,控制台将输出"Hello from ParentController"。