【发布时间】:2016-04-26 08:35:27
【问题描述】:
我是 node 的新手,我正在尝试了解具有 uiRouter 某些状态的 Angular SPA 如何与 Express REST API 相关联以从数据库中获取数据。谁能举个例子?
谢谢
【问题讨论】:
标签: angularjs rest express single-page-application
我是 node 的新手,我正在尝试了解具有 uiRouter 某些状态的 Angular SPA 如何与 Express REST API 相关联以从数据库中获取数据。谁能举个例子?
谢谢
【问题讨论】:
标签: angularjs rest express single-page-application
AugularJS SPA 可以通过各种模块(例如 $resource 或更完整 库(例如 Restangular)与 REST API 通信
例如,如果您的 Express API 可以在 /user/<userId> 上 GET 用户,并通过 POST 将其保存回来,您可以在 AngularJS 上执行此操作
var User = $resource('/user/:userId', {userId:'@id'});
var user = User.get({userId:123}, function() {
user.abc = true;
user.$save();
});
要了解 $resource 将对 HTTP 的每个操作执行什么操作,请参阅此默认映射
{ 'get': {method:'GET'},
'save': {method:'POST'},
'query': {method:'GET', isArray:true},
'remove': {method:'DELETE'},
'delete': {method:'DELETE'} };
这里的另一个答案建议$http。虽然这样做完全有可能,但 REST 库已经建立在 $http 之上,为您提供对 HTTP 动词和一般 REST 工具的方便支持。
如果您使用 $http,则必须手动执行此操作(更不用说您不会从构建这些库的智慧和最佳实践中受益)
【讨论】:
我不建议使用$resource。它是与 promise 保持链接的对象,当 promise 解决时,它本身也将包含数据。因此,如果您想在数据到来时执行一些操作,无论如何您都必须对该承诺进行回调。请改用$http。它是异步请求的较低级别的角度抽象。而here 是您可以使用$http 的方式。
【讨论】: