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