如何在getinfo()
中成功使用employeecontroller
函数调用函数crudApp.controller
,以便我可以在单击提交按钮后立即获取更新表
var crudApp = angular.module('crudApp', []);
crudApp.controller("DbController", ['$scope', '$http', function ($scope, $http) {
getInfo();
function getInfo() {
$http.post('select.php').success(function (data) {
// Stored the returned data into scope
$scope.details = data;
});
}
$scope.deleteInfo = function (info) {
$http.post('delete.php', {
del_id: info
}).success(function (result) {
getInfo()
console.log(result);
});
}
}]);
function employeecontroller($scope, $http) {
$scope.insertData = function () {
$http.post("insert.php", {
'firstname': $scope.firstname,
'lastname': $scope.lastname,
}).success(function (data, status, headers, config) {
console.log("Data Inserted Successfully");
});
}
}
答案 0 :(得分:0)
在employeecontroller函数成功使用.injector()
调用getInfoREF:AngularJS. How to call controller function from outside of controller component
function employeecontroller($scope, $http) {
$scope.insertData = function () {
$http.post("insert.php",{
'firstname': $scope.firstname,
'lastname': $scope.lastname,
}).success(function (data, status, headers, config) {
console.log("Data Inserted Successfully");
angular.element(document.getElementById('yourControllerElementID')).injector().getInfo('$rootScope');
});
}
}
答案 1 :(得分:0)
行。首先,我不知道你正在使用哪种角度版本,这可能会有所帮助。
其次,我认为您需要2个不同的控制器。每个控制器都有自己的$ scope。如果你想要共同的功能,你有两个选择:
1.(推荐)使用utils服务或类 2.在$ rootScope中声明它们。然后可以通过" $ rootScope.getInfo();"
在整个模块(crudApp)中访问它们。PD。现在,您只声明了一个控制器。但我认为你想要改造2个不同的控制器。
答案 2 :(得分:-1)
理想情况下,这应该通过事件调度来完成。如果employeecontroller是crudApp的控制器(从你共享的代码看起来不是这样),那么它可以通过$ rootScope。$ broadcast和$ scope。$ on来完成。如果不是这样,可以通过调度javascript事件来实现。将在DbController中监听事件。