Javascript AngularJS-检查我的资源工厂实现

Javascript AngularJS-检查我的资源工厂实现,javascript,api,angularjs,rest,Javascript,Api,Angularjs,Rest,刚刚开始使用AngularJS&js(作为一名后端开发人员),这是我曾经使用过的第一个Javascript MVC框架,所以请轻松使用 我有一个restful json API,我想使用AngularJS使用它 为了实现这一点,我创建了两个工厂,一个单数工厂用于控制器需要使用id查询工厂时,另一个复数工厂用于不需要id时 e、 g.下文: 控制器列出所有产品: app.controller('ProductController', function($scope, ProductsFactory

刚刚开始使用AngularJS&js(作为一名后端开发人员),这是我曾经使用过的第一个Javascript MVC框架,所以请轻松使用

我有一个restful json API,我想使用AngularJS使用它

为了实现这一点,我创建了两个工厂,一个单数工厂用于控制器需要使用id查询工厂时,另一个复数工厂用于不需要id时

e、 g.下文:

控制器列出所有产品:

app.controller('ProductController', function($scope, ProductsFactory) {
    $scope.products = [];

    init();
    function init()
    {
        $scope.products = ProductsFactory.query();
    }
});
工厂:

app.factory('ProductsFactory', function($resource) {
    return $resource('/xxx/xxx/xxx/api/v1/product', {}, {
        query: { method: 'GET', isArray: true },
        create: { method: 'POST' }
    });
});

app.factory('ProductFactory', function($resource) {
    return $resource('/xxx/xxx/xxx/api/v1/product/:id', {}, {
        show: { method: 'GET' },
        update: { method: 'PUT', params: { id: '@id' } },
        delete: { method: 'DELETE', params: { id: '@id' } }
    });
});
问题1:我是否正确实施了资源工厂?
问题2:是否有一种方法可以只使用一个工厂生产产品?e、 g.允许工厂决定id不是
查询
创建
所必需的,而是
显示
更新
删除
方法所必需的?

是的,您只能使用一个工厂:

app.factory('ProductFactory', function($resource) {
    return $resource('/xxx/xxx/xxx/api/v1/product/:id', { id : '@id'}, {
        update: { method: 'PUT' },     
    });
});
您不需要为每个请求指定“params”对象。为$resource定义它通常就足够了(但是如果您想覆盖它,当然可以使用它)

请注意,您不需要定义CRUD方法,因为$resource已经实现了它们(如文档:.$resource中所述)

目前,如果您想使用“PUT”,但打开了一个pull请求(),那么您只需要定义一个自定义方法更新,我希望我们能很快看到它的实现