加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 更好的设计,将数据传递到其他ng-view,并在控制器上

发布时间:2020-12-17 08:34:57 所属栏目:安全 来源:网络整理
导读:我今天早上开始在AngularJS开发,所以我道歉,如果这是一个愚蠢的问题。我很困惑,这是否是一个适当的设计,以在我的部分视图之间传递数据。 现在我有一个加载器页面,我做一些请求。 function PeopleController($scope,$http,$location){ $http.get('/locat
我今天早上开始在AngularJS开发,所以我道歉,如果这是一个愚蠢的问题。我很困惑,这是否是一个适当的设计,以在我的部分视图之间传递数据。

现在我有一个加载器页面,我做一些请求。

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

然后在视图中为/ test加载

我只是打电话

<div ng-controller="resultController">
    <div class="blueitem">{{getResultForPeople()|json}}</div>
</div>

[resultController]

function resultController($scope){
      $scope.getResultForPeople = function(){
     return $scope.getPeopleResponse();
    }
}

并且savePeopleResponse和getResultForPeople在rootScope中被“缓存”

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

  $rootScope.getPeopleResponse = function(){
    return peopleResponse;
  }
});

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

您可以通过 creating your own service在控制器之间持久化数据,如 this blog中所述。您还可以参考 this question。

在你的情况下,你可以将savePeopleResponse和getPeopleResponse移动到一个服务,然后将服务注入任何你想访问它的控制器。

angular.module('myApp',[])
    .factory('peopleService',function () {
        var peopleResponse = {};

        return {
            savePeopleResponse:function (data) {
                peopleResponse = data;
                console.log(data);
            },getPeopleResponse:function () {
                return peopleResponse;
            }
        };
    });

用你的控制器这样:

function resultController ($scope,peopleService) {
    $scope.getResultForPeople = peopleService.getPeopleResponse;
}

有了这个代码示例,请确保您包括ng-app =“myApp”

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读