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” (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |