我之前很短的时间问这个问题......但我觉得这很复杂。 所以我试着在这里以更好的方式提问它。
我有一个mysql数据库,我使用php文件来添加,编辑和获取数据。
示例工作正常,但我正在寻找一种方法来添加(add() - 函数新数据到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();
};
});
答案 0 :(得分:2)
你必须回复承诺:
return $http.get('php/save.php')
而不是添加功能:
DataService.addProject().than(function(){
DataService.getProjects(function( results ){
$scope.projects = results;
});
})
答案 1 :(得分:1)
如果您不想从数据库获取数据,添加后,您可以轻松地将新添加的对象推送到$ 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) {
...
});
}
答案 2 :(得分:0)
控制器:
$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)
}
这是发送数据的正确方法还是更智能的?