如何从另一个控制器调用函数loadTable?
app.controller('tableCtrl', ['$scope', function (scope) {
scope.loadTable = function() {
//some code
};
});
app.controller('secondCtrl', ['$scope', function (scope) {
scope.buttonClick = function() {
//call loadTable from tableCtrl
};
});
答案 0 :(得分:3)
尝试$emit-$on
(发布 - 订阅)机制。
app.controller('tableCtrl', ['$scope', function (scope) {
scope.loadTable = function() {
//some code
};
$rootScope.$on('load-table', function (event, arg1, arg2) {
// now trigger the method.
scope.loadTable();
});
});
app.controller('secondCtrl', ['$scope', function (scope) {
scope.buttonClick = function() {
//call loadTable from tableCtrl
//emit the event
$rootScope.$emit('load-table', 'arg1', 'arg2');
};
});
答案 1 :(得分:1)
您应该使用
等服务app.factory('tableService', [function () {
return {
loadTable : function() {
//some code
}
};
});
app.controller('tableCtrl', ['$scope', 'tableService', function (scope, tableService) {
});
app.controller('secondCtrl', ['$scope', 'tableService', function (scope, tableService) {
scope.buttonClick = function() {
tableService.loadTable();
};
});
您的tableCtrl需要使用服务上的其他功能保存任何数据。