【问题标题】:angularjs, ngResource in a factory and network calls工厂中的 angularjs、ngResource 和网络调用
【发布时间】:2015-05-04 02:56:19
【问题描述】:

试图解决这个问题。我有一个使用 ngResouce 的简单工厂,如下所示:

   .factory('FooResource', function($resource) {

    var foo = $resource('/api/foo').get();

    return foo;

   })

在我的应用程序中,随着时间的推移,在多个地方、多个控制器中,我使用“FooResource.bar”的值(其中“bar”在 get() 调用的数据中返回)。

对“/api/foo”的网络调用是否只会在我的 SPA 生命周期的第一次引用时发生?是否需要像承诺一样处理对“FooResource.bar”的第一个引用?

根据我在玩代码时看到的情况,第一个问题似乎是“是”,第二个问题是“否”,但不知道这是否真的是真的,或者只是因为它发生了我的开发盒上的小型测试应用程序。

编辑:我想我想要验证的部分内容是我的想法,因为这是在一个工厂中,这是一个单例,所以 $resource 调用只会进行一次。这是真的吗?

【问题讨论】:

    标签: angularjs ngresource


    【解决方案1】:

    取决于,是的。您将始终需要将其作为一个承诺来处理,并且您可以启用/禁用 http 缓存。如果您将缓存设置为 true,则请求将发送一次并被缓存,直到缓存被清除。

    您可以在此处的 $resource 文档中找到有关 $resource 缓存的更多信息:https://docs.angularjs.org/api/ngResource/service/$resource

    【讨论】:

    • 我添加了一个编辑,想知道 $resource 调用是否只会进行一次,因为这是在工厂/单例中。
    猜你喜欢
    • 1970-01-01
    • 2014-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-18
    • 1970-01-01
    相关资源
    最近更新 更多