【问题标题】:Share data between two controllers in angularjs using restangular使用restangular在angularjs中的两个控制器之间共享数据
【发布时间】:2013-11-21 12:00:29
【问题描述】:

我对 angularjs 还很陌生,所以请多多包涵。

我有两个控制器,其中一个有一个 Restangular 调用来加载某个 json 对象。如何在不进行另一个 Restangular 调用的情况下访问另一个控制器中的同一个 json 对象?

我已经尝试创建一个共享对象的factory,但这还远远不够。

app.factory('Data', function() {
    return []
}

app.controller("FirstCtrl", function ($scope, AudioRestangular, Data) {
    $scope.audios_full = Data
    // load data into $scope.audios_full using restangular
}

app.controller("SecondCtrl", function ($scope, AudioRestangular, Data) {
    /*
     * $scope.second_ctrl_audios = ?
     * get data from FirstCtrl's audios_full
     * and store it in this $scope.second_ctrl_audios
    */
}

【问题讨论】:

标签: json angularjs angularjs-scope angularjs-controller restangular


【解决方案1】:

您可以使用自定义服务/工厂路线,按照您的建议有效地创建自己的缓存层,或者您可以在 Restangular 中启用缓存。来自https://github.com/mgonto/restangular#can-i-cache-requests

RestangularProvider.setDefaultHttpFields({cache: true});

您可以将它放在应用程序的“运行”调用中,如下所示:

app.run(function(RestangularProvider) {
  RestangularProvider.setDefaultHttpFields({cache: true});
});

【讨论】:

  • 不是run()函数,但我认为是app的config()函数。
猜你喜欢
  • 2015-12-15
  • 2014-03-22
  • 2014-12-14
  • 1970-01-01
  • 1970-01-01
  • 2013-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多