相关疑难解决方法(0)

更好的设计,用于将数据传递到其他ng-view并将其持久化到控制器

我开始在AngularJS开发.我很困惑这是否是在我的部分视图之间传递数据的正确设计.

现在我有一个加载页面,我做了一些请求.

function PeopleController($scope,$http,$location){
    $http.get('/location/-79.18925/43.77596').
    success(function(data){
      $scope.savePeopleResponse(data);
      $location.url('/test');
    });
}
Run Code Online (Sandbox Code Playgroud)

然后在为/ test加载的视图中

我只是打电话

<div ng-controller="resultController">
    <div class="blueitem">{{getResultForPeople()|json}}</div>
</div>
Run Code Online (Sandbox Code Playgroud)

[resultController]

    function resultController($scope){
      $scope.getResultForPeople = function(){
     return $scope.getPeopleResponse();
    }
}
Run Code Online (Sandbox Code Playgroud)

并且rootPcope中的savePeopleResponse和getResultForPeople被"缓存"

app.run(function($rootScope) {
  var peopleResponse = {};
  $rootScope.savePeopleResponse = function(data) {
   peopleResponse = data;
   console.log(data);
  }

  $rootScope.getPeopleResponse = function(){
    return peopleResponse;
  }
});
Run Code Online (Sandbox Code Playgroud)

现在你可以看到,如果这个应用程序变得越来越大,这将变得非常混乱.处理数据的最佳方法是什么,以便它跨控制器持续存在?

angularjs

29
推荐指数
1
解决办法
4万
查看次数

Angular服务缓存一个值

我的服务需要异步检索一个值,但是一旦我拥有它,我想使用该值的缓存版本.

当两个控制器调用此服务时,我希望第一个控制器缓存检索到的值,第二个控制器使用缓存值,但根据日志,我从未找到缓存值.当它运行时,我看到一条日志消息,显示正在缓存的值,然后,当我按照一个角度路由到另一个控制器时,我没有看到服务找到缓存的值.为什么它没有按照我的期望运行**?**

angular.module('myApp.services').factory('Config', function() {

    var Config = { };

    Config.currentYear = function() {
        if (Config._currentYear) {
            // sadly, we never execute here
            console.log("returning cached year");
            return Parse.Promise.as(Config._currentYear);
        }
        return Parse.Config.get().then(function(config) {
            console.log("caching year");
            Config._currentYear = config.get("currentYear");
            return Config._currentYear;
        });
    };

    return Config;

});
Run Code Online (Sandbox Code Playgroud)

一些注意事项:(1)我将缓存的属性命名为_currentYear,添加下划线以避免与函数名冲突.不确定我是否需要这样做.(2)当缓存值时,我返回一个履行的承诺,因此函数总是返回一个promise ...也不确定是否需要它,但认为它不会受到伤害.

javascript promise angularjs parse-platform angularjs-service

5
推荐指数
1
解决办法
429
查看次数