【问题标题】:How Angular SPA relates to REST APIAngular SPA 与 REST API 的关系
【发布时间】:2016-04-26 08:35:27
【问题描述】:

我是 node 的新手,我正在尝试了解具有 uiRouter 某些状态的 Angular SPA 如何与 Express REST API 相关联以从数据库中获取数据。谁能举个例子?

谢谢

【问题讨论】:

    标签: angularjs rest express single-page-application


    【解决方案1】:

    AugularJS SPA 可以通过各种模块(例如 $resource 或更完整 库(例如 Restangular)与 REST API 通信

    $resource 示例

    例如,如果您的 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。虽然这样做完全有可能,但 REST 库已经建立在 $http 之上,为您提供对 HTTP 动词和一般 REST 工具的方便支持。

    如果您使用 $http,则必须手动执行此操作(更不用说您不会从构建这些库的智慧和最佳实践中受益)

    【讨论】:

      【解决方案2】:

      我不建议使用$resource。它是与 promise 保持链接的对象,当 promise 解决时,它本身也将包含数据。因此,如果您想在数据到来时执行一些操作,无论如何您都必须对该承诺进行回调。请改用$http。它是异步请求的较低级别的角度抽象。而here 是您可以使用$http 的方式。

      【讨论】:

        猜你喜欢
        • 2020-07-30
        • 2020-12-25
        • 2016-09-30
        • 2018-11-24
        • 2019-05-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多