具有表之间关系的AngularJS资源

AngularJS Resource with relation between tables

本文关键字:AngularJS 资源 关系 之间      更新时间:2023-09-26

AngularJS Resource是否可以做到这一点?

/api/client/:id/jobs(从该客户端获取所有作业)

/api/client/:id/job/:jobId(从该客户端获取作业)

我的工厂:

.factory('Client', ['$resource', 'Api',
    function ($resource, Api) {
        var Client = $resource(Api.url() + 'client/:id/',
            {
                id: '@id'
            },
            {
                'update'   : { method: 'PUT',  isArray: false }
            }
        );
        return Client;
    }
]);

谢谢!

我找到了解决问题的方法。

我必须创建另一家工厂来完成这项工作:

.factory('ClientJobs', ['$resource', 'Api',
    function ($resource, Api) {
        var ClientJobs = $resource(Api.url() + 'client/:clientId/job/:jobId',
            {
                clientId: '@Id',
                jobId: '@Id'
            },
            {
                'query':  { method: 'GET', isArray: true },
                'update': { method: 'PUT' }
            }
        );
        return ClientJobs;
    }
]);

而且,我可以这样使用工厂:

ClientJobs.save({clientId:clientId, jobId:job.id}, job, function (result) {
            deferred.resolve(result);
        }, function (reason) {
            deferred.reject(reason);
        });

现在,一切都在运转。

为了帮助那些使用UI-ROUTER的人,有一个关于复杂状态(如我的和嵌套视图)的极好答案:

具有嵌套状态的嵌套视图