AngularJS可以在没有REST API的情况下使用吗?

当我用node.js创build一个简单的网站时,使用视图引擎(例如.jade)和向其提供数据的控制器(例如,简单的待办事项列表)很好。 但是,如果我决定添加AngularJS作为客户端框架,那么似乎我必须在后端实现REST API来从中获取数据。 几乎所有我在AngularJS上看到的例子都有这样的基本架构:客户端(angular)通过REST API与服务器通信。

AngularJS可以使用没有REST API,如果是的话,我应该做还是应该避免它? 在没有REST API后端的情况下是否有使用AngularJS的build议/最佳实践?

绝对。 即使您从未使用$ http服务与您的服务器通话,Angular仍然可以在您的网站上做很多事情。 您仍然可以利用这些实用程序来帮助您pipe理DOM。

也就是说,大多数现代应用程序需要从服务器获取数据。 有很多原因,你可能需要这样做。 例如,如果您有需要注册的用户,则需要在某处存储用户名和密码。 那个地方会在只有你的服务器可以访问的数据库中。 然后你的服务器会提供一些URL,你可以通过Angular的$http服务进行交stream。

如果您确实有一个应用程序可以调用服务器,但是您想closuresnetworking通信以进行testing,则可以模拟 $http调用响应。 Angular提供了一个$ httpBackend来达到这个目的。 您可以使用它来设置假装URL来响应您的$http调用,这样您的$http调用就不会知道它们实际上没有与服务器通信。

 authRequestHandler = $httpBackend.when('GET', '/auth.py') .respond({userId: 'userX'}, {'A-Token': 'xxx'}); 

在testing过程中完美地testing您的代码,而不需要REST后端。

代表性状态转移的简称REST基本上是事物或资源而不是行为。 是的,AngularJS可以在没有REST API的情况下使用。

你可以使用nodeJS来将你的restful API和AngularJS作为你的javascript框架。

即使没有一个安静的API AnguarlJS是一个非常强大的工具,但在使用它的潜力(完全缩放的Web应用程序)时,您需要一个平静的API。

对于RESTful API,请使用$ http使用$ resource for RESTful API