Javascript angularjs数据的单一真实来源?

Javascript angularjs数据的单一真实来源?,javascript,angularjs,Javascript,Angularjs,我有一个使用restangular的angular来实现api。下面是一个模型示例 ReservationModel.factory('ReservationRestangular', function (Restangular) { var baseURL = ''; return Restangular.withConfig(function(RestangularConfigurer) { RestangularConfigurer.

我有一个使用restangular的angular来实现api。下面是一个模型示例

ReservationModel.factory('ReservationRestangular', function (Restangular) {
        var baseURL = '';
        return Restangular.withConfig(function(RestangularConfigurer) {
            RestangularConfigurer.setBaseUrl(baseURL);
        });
    }).service('ReservationService', ['ReservationRestangular', function(ReservationRestangular) {

            this.get = function(id) {
        return ReservationRestangular.one('reservations', id).get().then(function(response) {
            return response;
        });
    };

    this.all = function() {
        return ReservationRestangular.all('reservations').getList().then(function(response) {
            return response;
        });
    };
    }]);
当前,需要保留列表的每个控制器都会调用ReservationService.all,这会命中服务器,如果需要特定的保留,则会调用ReservationService.get,并命中服务器。如果他们移动到应用程序的另一个部分,并且控制器需要预订,那么它会再次这样做

我想要的是,服务器只在第一次命中,即调用all并将响应存储在ReservationService中的一个变量中,该变量可以在下次检查并立即返回,而不是再次命中服务器

如果创建或编辑了预订,则可以再次调用all以获得更新的列表

如果请求单个预订,则应首先检查存储的预订列表,如果找到,则从该列表返回预订,而不是点击服务器


这是正确的做事方式吗


这里最好的地方是预订服务吗?它是一个单例,因此只能创建一次“每个会话”可能不是正确的术语,并且在所有模块和控制器之间共享?

这是正确的方法吗?也许吧。如果你坚持更新=>刷新列表,应该没问题,只是如果其他用户更新列表,用户不会实时获得数据库更新。