如何在angularjs中为CRUD做基类概念?

时间:2016-01-28 10:45:53

标签: javascript angularjs angularjs-directive angularjs-scope angularjs-controller

目前正在使用angularJS进行学生项目。在那里我需要使用基类概念 对于CRUD操作..我需要在该类中创建一个基类 创建,读取,更新和删除方法..通过应用程序我需要使用基于参数和对象的通用方法保存数据对应的位置。

2 个答案:

答案 0 :(得分:0)

您可以创建仅包含servicefactory个功能的CRUDservice,然后在controller中注入arguments并传递{{1} }或object到特定的服务功能。

已更新以显示示例:

app.factory('baseService', ['$http',
    function($http) {
        return {
            create: function(data) {
              return $http.post('/api/..', data);
            },
            read: function() {
                return $http.get('/api/..');
            },
            update: function() {
                return $http.put('/api/..', data);
            },
            delete: function() {
                return $http.delete('/api/..');
            }
        };
    }
]);

app.controller('yourController', ['$scope', 'baseService',
    function($scope, baseService) {
        baseService.read().then(function(response) {
            console.log(response);
        }, function(error) {
            console.log(error);
        })
    }
]);

答案 1 :(得分:0)

创建服务或工厂以处理您的所有$http需求。对$http使用角度post shortcut methodsgetputdelete返回承诺

app.factory('DataService', function($http) {
  var create = function() {
    return $http.post("/api/...") // returns a promise
  };

  var read = function() {
    return $http.get("/api/...") 
  };

  var update = function() {
    return $http.put("/api/...") 
  };

  var delete = function() {
    return $http.delete("/api/...") 
  };

  return {
    create: create,
    read: read,
    update: update,
    delete: delete
  }
});

这可以在整个应用程序中重复使用,如下所示:

app.controller('MyController', function ($scope, DataService){
  DataService.read().then(
    function(data){
      console.log(data)
    },
    function(error){
      console.log(error);
    })
});