【问题标题】:Restangular and local storageRestangular 和本地存储
【发布时间】:2013-11-13 11:07:17
【问题描述】:
$stateProvider.state( 'clientinfo', {
    abstract: true,
    url: '/clientinfo',
    resolve: {
        clients: ['Restangular','localStorageService',function(Restangular,localStorageService){
          var clients = localStorageService.get('clients');
          if(clients == null) {
             return Restangular.all('clients').getList().then(function(result){
             localStorageService.add('clients',result);
             angular.copy(result, clients);
          });
          return clients;
        }]
    }
    ......
}

我尝试使用 localStorage 和 restangular,但在初始页面加载时,我的客户端对象没有返回实际的 GET 响应,而是返回一个空对象,尽管我的本地存储设置正确。

此代码在没有本地存储的情况下按方面工作:

$stateProvider.state( 'clientinfo', {
    abstract: true,
    url: '/clientinfo',
    resolve: {
        clients: ['Restangular',function(Restangular){
             return Restangular.all('clients').getList();
        }

    }
 .....
}

有什么帮助吗?谢谢

我使用这个模块进行本地存储:https://github.com/grevory/angular-local-storage 休息角:https://github.com/mgonto/restangular

【问题讨论】:

    标签: angularjs local-storage angular-ui-router restangular


    【解决方案1】:

    没有 localStorage 的版本可以工作,因为 Restangular 调用返回承诺,$state 服务将在完成转换和加载控制器之前解决。

    但是,在您的初始示例中,您的 then() 没有返回值,因此生成的承诺(即您返回的内容)的分辨率是 null。如果您删除您的angular.copy() 调用并返回result,它应该可以正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-24
      • 2016-11-10
      • 2017-12-06
      • 2012-02-23
      • 2012-05-05
      • 2021-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多