【问题标题】:Explain the service.js in AngularJS解释 AngularJS 中的 service.js
【发布时间】:2014-05-24 07:26:22
【问题描述】:

我对 AngularJS 和 NodeJS 还是很陌生。我正在尝试使用 MEAN 堆栈开发应用程序。我只是查看了 mean.io 样板中的示例代码。我创建了自己的应用程序,引用了示例应用程序。我正在尝试提交 AngularJS 前端并期望它调用 NodeJs 服务器端,但它不起作用。我认为 service.js 搞砸了。这是示例应用程序的服务代码。谁能解释这段代码对 Angular 客户端和 NodeJS 服务器端的作用。

'use strict';

//Articles service used for articles REST endpoint
angular.module('mean.articles').factory('Articles', ['$resource', function($resource) {
    return $resource('articles/:articleId', {
        articleId: '@_id'
    }, {
        update: {
            method: 'PUT'
        }
    });
}]);

【问题讨论】:

标签: node.js angularjs mean-stack mean.io


【解决方案1】:

它在 Angular 中创建了一个名为 Articles 的新工厂。文章工厂注入了 $resource 服务。 $resource 对象用于设置与 RESTful 服务通信的对象,在本例中,“articles/:articleId”将从使用此 $resource 的查询返回的资源对象的 _id 中提取 articleId。当您调用更新其中一个资源时,它将使用 PUT HTTP 动词。

它本身只是定义了工厂,但实际上并没有进行任何调用,您需要注入它并在 Articles.query() 之类的地方使用它;

来自文档

如果参数值以 @ 为前缀,则该值 参数是从数据对象中提取的(对非 GET 有用 操作)。

【讨论】:

  • 那么这是否是 AngularJS 和 NodeJS api 之间的链接?
  • 这样想 - 在您的代码中,您定义了一种调用 RESTful 服务的方式,但您尚未使用该服务。这相当于你定义了一个函数但还没有执行它......
  • 正如 callmekatootie 所说,这基本上是在 Angular 中创建新服务的配置,以后可以使用,但由于它尚未被使用,它本身不会显示任何调用。下一步是将文章注入另一个服务或控制器并调用 Articles.query() 以获取文章,返回的对象将具有可用于保存或删除对象的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-07
  • 1970-01-01
  • 2014-01-19
  • 2018-11-04
  • 2016-04-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多