AngularJS $resource RESTful 示例

阅读时长 5 分钟读完

这篇文章将介绍如何使用AngularJS中的$resource服务来创建RESTful API请求。我们将会在示例代码中提供一个简单的电影列表应用程序。

什么是 $resource?

$resource 是一个 AngularJS 内置的服务,它提供了一种简便的方式去与 RESTful APIs 进行交互。$resource 可以帮助你快速地定义出 $http 请求,并且可以自动处理数据的序列化和反序列化。

当你使用 $resource 时,你需要告诉它你的 API 的地址和路由规则。然后,你可以通过调用 $resource 实例上的方法去获取、创建、更新和删除数据。

创建一个 RESTful Service

首先,让我们创建一个能够与 movies 资源进行交互的 $resource 服务。

在这个例子中,我们创建了一个名为 Movie$resource 服务,并指定了路由规则 /api/movies/:id。注意到传入的对象 { id: '@_id' } 中的 @ 字符表示要从模型实例中获取该属性(即从 $resource 返回的对象)。

现在,我们可以通过 Movie.query() 方法来获取所有的电影列表,或是通过 Movie.get({ id: 1 }) 来获取某个具体的电影。

在控制器中使用 $resource

接下来,我们需要在 AngularJS 控制器中使用 $resource 服务来实现一些功能。让我们设想,我们要创建一个可以列出、添加和删除电影的应用程序。

-- -------------------- ---- -------
-------------------------- ---------------
    ----------------- ------------------- -
        ------ ---------------------------- - --- ------ -- -
            ------- -
                ------- -----
            -
        ---
    --
    ------------------------------ ---------------- ------ -

        -- ------
        ------------- - --------------

        -- -----
        --------------- - ---------- -
            --- ----- - --- -------
                ------ ---------------------
                --------- ------------------------
                ------------ --------------------------
            ---

            ---------------------- -
                --------------------------
                -------------------- - ---
                ----------------------- - ---
                -------------------------- - ---
            ---
        --

        -- ----
        ------------------ - --------------- -
            ------------------------ -
                --- ----- - -----------------------------
                --------------------------- ---
            ---
        --
    ---

在这个控制器中,我们注入了 Movie 服务,并且使用它来获取电影列表。我们还定义了一个函数 addMovie(),将创建一个新的电影实例,并将其保存到服务器上。deleteMovie() 函数用于删除一个现有的电影实例。

示例应用程序

最后,让我们看一下完整的电影列表应用程序示例。请注意,这只是一个简单的示例,它所包含的功能并不完整。但是,它可以帮助你更好地理解如何使用 $resource 服务。

-- -------------------- ---- -------
--------- -----
----- ------------------
------
    ----- ----------------
    ---------------- --------- ------- ---------------
    ------- -------------------------------------------------------------------------------
    ------- ----------------------------------------------------------------------------------------
    ------- ----------------------
-------
------

---- --------------------------------

    ---------------

    -------

- ----------------------------------------------------------- --------
----------------------------------------------------------------------------------
纠错
反馈