2

我目前正在使用 Angular 资源 1.2.x 实现 REST API。我刚刚发现了几个提示,在 1.2.x 版本中,angular-resource 打破了一些现有的模式。我现在的问题是,如何使用 angular-resource 1.2.x 正确处理以下场景。

我确实有一个返回数据 (/offers/:id) 的 REST API 和一个使用角度资源抽象这些 API 的角度服务。在此服务中,我确实有一个 get 函数,可以使用给定的 id 查询 API:

_offerResource.get({offerId: id})

_offerResource 本身是 $resource 的一个实例。

在我的控制器中,我确实在视图绑定的 $scope 上有一个变量 offer(例如 $scope.offer.title,...)。

我尝试使用以下代码行来实现对 API 的调用:

_tempOffer = OfferAPI.get($routeParams.offerId)

但不幸的是,绑定不起作用。基于这个 SO 条目(Angularjs 承诺不绑定到 1.2 中的模板),角度资源的行为已经改变。但是使用 $promise.then(...) 语句的方法是要走的路吗?从工程的角度来看,这看起来很丑陋,因为我需要在控制器中处理这个问题,而不是服务返回我可以使用的对象。

这个可行,但如上所述,从软件设计的角度来看,这不是我最喜欢的方法:

    _tempOffer = OfferAPI.get($routeParams.offerId)
    _tempOffer.$promise.then((response) ->
        $scope.offer = Offer.initializeFromJSON(response.offer)
    )

顺便说一句,我将 API 的响应转换为另一个对象,因此我需要先进行以下转换,然后才能将 offer 对象绑定到 $scope.offer 变量:

$scope.offer = Offer.initializeFromJSON(response.offer)

非常感谢你的帮助!

4

0 回答 0