AngularJS:映射到REST资源(ORM风格)创建对象 [英] AngularJS: Creating Objects that map to REST Resources (ORM-Style)

查看:211
本文介绍了AngularJS:映射到REST资源(ORM风格)创建对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是pretty新AngularJS,但我pretty如何配合它到我的服务器的REST API后端不清楚。

I'm pretty new to AngularJS, but I'm pretty unclear on how to tie it up to my Server's REST Api backend.

举例来说,假设我有一个形象的资源,我得到GET-ING:myApi /图片/ 1 /。此方法返回各个领域的JSON对象。让我们这样说:

For example, say I have an "image" resource that I get by GET-ing: myApi/image/1/. This returns a json object with various fields. Let's say something like:

{url: "some/url", date_created: 1235845}

现在,我想某种重新presentation在我AngularJS这个形象对象的应用程序。这将重新presentation不仅仅是一个字段映射的 - 我想补充助手功能,例如,该 date_create 字段转换成一些人的功能可读。

Now, I want some kind of representation in my AngularJS app of this "Image" object. This representation is more than just a mapping of the fields - I want to add "helper" functions, for example a function that converts the date_create field into something human-readable.

我知道了$资源服务,但我不清楚是什么,我需要做的创造角一个基本的类,即用资源来获得JSON对象,但通过添加各种辅助功能增强了。

I know about the $resource service, but I'm unclear what I need to do to create a basic "class" in Angular, that uses Resource to get the JSON object, but then enhances it by adding various helper functions.

加分点:

我也不清楚如何添加模型之间的关系。例如,我可能已经嵌入了一个形象资源用户的资源,我会想抢夺用户资源,但能够呼吁的图像部分图像辅助功能该模型。

I'm also unclear how to add "relationships" between models. For example, I might have a "user" resource that has embedded inside it an "image" resource, and I'll want to grab the User resource, but be able to call "Image" helper functions on the "Image" part of the model.

推荐答案

JSData 结果
它开始作为角数据的项目现在是的易用性和安心的构建框架无关的数据存储。
它具有优良的文档和有关系的支持下,多个后端(HTTP,本地存储,火力点),当然审定角度积分和。结果
http://www.js-data.io/

BreezeJS 结果
AngularJS的YouTube频道功能的这个视频使用 BreezeJS

BreezeJS
The AngularJS YouTube channel features this video using BreezeJS

这是其中甚至支持客户端过滤等凉的东西了先进的ORM。
它最适合于后端支持的OData 的,但是可以使其他类型的后端的工作

Which is an advanced ORM which even supports client-side filtering and other cool stuff. It best suited for backend that support OData, but can be made to work on other types of backends.

ngResource 结果
另一种选择是使用
ngResource ,这里是如何将它与自己的功能扩展的例子:

ngResource
Another option is to use the ngResource, here is an example on how to extend it with your own functions:

module.factory('Task', function ($resource) {
    var Task = $resource(WEBROOT + 'api/tasks/:id', {id: '@id'}, {update: { method: 'PUT'}});
    angular.extend(Task.prototype, {

        anExampleMethod: function () {
            return 4;
        },

        /**
         * Backbone-style save() that inserts or updated the record based on the presence of an id.
         */
        save: function (values) {
            if (values) {
                angular.extend(this, values);
            }
            if (this.id) {
                return this.$update();
            }
            return this.$save();
        }
    });
    return Task;
});

我发现ngResource非常有限,甚至比 Backbone.Model 有:


  • 自定义通过JSON解析Model.parse

  • 可以延长一个BaseModel(否的baseUrl在ngResource)

  • 其他挂钩像Backbone.sync,使本地存储,等等。

Restangular 结果
AngularJS服务正常,轻松地处理REST API RESTful资源结果
http://ngmodules.org/modules/restangular

或尝试一些其他的ORM的结果
哪些选项可用于客户端的JavaScript ORM?

这篇关于AngularJS:映射到REST资源(ORM风格)创建对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆