Angularjs 数据服务添加完成后刷新作用域

Angularjs 数据服务添加完成后刷新作用域,angularjs,Angularjs,我之前问过这个问题…但我觉得太复杂了。 所以我试着用一种更好的方式来问 我有一个mysql数据库,我使用php文件来添加、编辑和获取数据 该示例运行良好,但我正在寻找一种在添加(add()-function)新数据到mysql数据库后刷新$scope.projects的方法。有什么想法吗 我还没有将任何数据传递到save.php…此时它是静态的 test.factory('DataService', function ($http, $log) { return {

我之前问过这个问题…但我觉得太复杂了。 所以我试着用一种更好的方式来问

我有一个mysql数据库,我使用php文件来添加、编辑和获取数据

该示例运行良好,但我正在寻找一种在添加(add()-function)新数据到mysql数据库后刷新$scope.projects的方法。有什么想法吗

我还没有将任何数据传递到save.php…此时它是静态的

test.factory('DataService', function ($http, $log) {

    return {

        getProjects: function ( callback ) {
            $http.get('php/data.php').success( callback );
        },

        addProject: function ( ) {
            $http.get('php/save.php');
        }


    };

});


test.controller('projects', function ( $scope, DataService ) {

    DataService.getProjects(function( results ){
        $scope.projects =  results;
    });

    $scope.add = function ( ) {
        DataService.addProject();
    };

});

你必须回报承诺:

return $http.get('php/save.php')
而不是添加功能:

DataService.addProject().than(function(){
    DataService.getProjects(function( results ){
        $scope.projects =  results;
    });
})

若不想从数据库中获取数据,在添加后,可以轻松地将新添加的对象推送到$scope.projects

一些代码:

 $scope.add = function (newProject) {
        DataService.addProject().then(function(){
           $scope.projects.push(newProject);
        });
    };
并调整您的工厂:

   addProject: function (newProject) {
        $http.post('php/save.php').then(function(successResult){ 
             ...
        }, function (errorResult) {
           ...
        });
    }
控制器:

$scope.add = function () {
  DataService.addProject({"name":this.name}).then(function () {
    DataService.getProjects(function(results){
       $scope.projects =  results;
    });
  });
};
工厂:

addProject: function (data) {
   return $http.post('php/save.php',data)
}

这是发送数据的正确方法还是更智能的方法?

then函数在出现mysql错误时启动?从sql中获取数据以查看其实际加入的情况不是更好吗?否。在操作完成并包含两个参数(回调函数)后调用then()函数。第一个回调有趣-成功结果,第二个-错误结果。我用example.nice更新了我的答案。这就是我需要的;-)如何使用get发送表单数据?我必须如何在php中处理它们?