2013-07-03 83 views
1

我正在为现有的Web应用程序在Angular中构建一个服务层。将$ http请求和数据按摩转移到Angular定制服务中。我理解服务的依赖注入部分,但我正在努力解决成功/错误,并将其传递给控制器​​。角度控制器和服务 - 成功和错误回调

我看到一些人用$ q使用承诺。如果您在每个服务调用中执行单个REST API调用,是否有更容易的承诺的“then()”语法?注意:后端是非标准的REST,所以$资源策略对我来说不起作用。我无法告诉我们最新推荐的处理服务承诺/回调的方式。如果您关心的是成功条件,回调似乎很简单。有最近的示例应用程序能很好地展示这方面的服务吗?或文章?

+0

'success()'和'error()'不返回promise,只有'then()'做。这里有两个服务的例子,一个使用'success()',另一个'then()':http://stackoverflow.com/questions/17416599/should-services-expose-their-asynchronicity关于这个问题的共识是:使用'then()'。 –

回答

1

我最近写了一些缓存服务,我不能决定使用延迟还是回调。我最终使用了延期路线,我喜欢它。写了同样的东西两次,我可以肯定地说,对于使用你的服务的人来说,改变只是轻微的。

在回调中,他们通过回调来继续。

在延期中,他们将菊花链连接起来,然后传递匿名函数进行延续。非常相似。

由于Angular有能力特别考虑延期,我会推荐使用延期。

如果您将范围变量设置为延迟,那么Angular足够聪明,可以等待deferred.promise解决。一旦解决,Angular将绑定到变量。这非常棒。我会建议拥抱。