如何在AngularJS控制器之间正确共享数据?

亚姆斯廷普森

请多多包涵。我是Angular的新手,实际上只有一天左右,但是大多数对我来说很有意义。我已经创建了Controllers,routes等,但是放在一起我有点迷失了。

我的问题

我有一个带有的页面ng-view,根据路由的不同,将使用不同的数据和模板来调用不同的控制器。目前,我有一个“列表”页面和一个通过ID路由的“详细”页面,但是我需要两个页面上的列表。

我读过有关使用工厂并将数据相互传递的信息,但这是正确的方法吗?

plopApp.controller('juryCtrl', function($scope, $http) {
$http.get('/assets/javascripts/plop/plop/plopies.json').success(function(data) {
    $scope.plopies = data;
});
});

plopApp.controller('plopDetailCtrl', ['$scope', '$routeParams', '$http',
function($scope, $routeParams, $http) {
    $http.get('/assets/javascripts/plop/plop/' + $routeParams._id + '.json').success(function(data) {
    $scope.plopor = data;
});
}]);

在详细信息页面上,我也希望输出列表。我是使用工厂执行此操作,还是模板结构不正确?

更新

我要到达那里-我现在了解工厂/服务的基本知识,观看了一两个视频,但在详细页面的执行过程中遇到了麻烦。

这是我在我的应用程序中工作的工厂

juryApp.factory('juryListFactory', function ( $http ) {
return {
    list: function() {
        return $http.get('/assets/javascripts/jury/jury/juries.json')
        .then(
            function(result) {
                return result.data;
        });
    }
};
});

现在我正在尝试转换此控制器的内部:

 juryApp.controller('juryDetailCtrl', ['$scope', '$routeParams', '$http',
function($scope, $routeParams, $http) {
    $http.get('/assets/javascripts/jury/jury/' + $routeParams._id + '.json').success(function(data) {
    $scope.juror = data;
});
 }]);

到一家工厂..目前我写了这个,但似乎没有用

 juryApp.factory('juryListDetailFactory', '$routeParams', function($http, $routeParam){
var factory = {};
factory.getList = function(list, callback){
    $http.get('/assets/javascripts/jury/jury/' + $routeParams._id + '.json').
    success(function(data){                      
        callback(data)
    }).error(function(){
        /*handle errors however you want */
        callback(false);  
    })};
return factory;
}

我收到此错误错误:[ng:areq]参数'juryDetailCtrl'不是一个函数,未定义

对juryDetailCtrl的任何帮助将不胜感激

卡里姆·阿里(Karim Ali)

从结构的角度来看会更好,如果您从服务或工厂进行$ http.get调用,然后在任何控制器中调用它,例如:

angular.module('myApp')

.factory('myFactory', function ($http) {
    return {
        list: function() {
            return $http.get('/myURL/list').then(
                    function(result) {
                        return result.data;
                });
        }
    };
});

然后从控制器:

.controller('myController', ['$scope', 'myFactory',
    function($scope, myFactory) {
        myFactory.list().then(
        function(data){
            $scope.myData = data;
        });
}]);

并从另一个控制器:

.controller('myController2', ['$scope', 'myFactory2',
    function($scope, myFactory2) {
        myFactory2.list().then(
        function(data){
            $scope.myData = data;
        });
}]);

等等..

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AngularJS在控制器之间共享数据

来自分类Dev

在控制器AngularJS之间共享数据

来自分类Dev

在控制器之间共享数据,AngularJS

来自分类Dev

如何在angularjs中的两个控制器之间共享数据

来自分类Dev

如何在AngularJS中的各个控制器之间共享数据?

来自分类Dev

如何在angularjs中使用服务在控制器之间共享和更新数据

来自分类Dev

如何在控制器之间共享数据?

来自分类Dev

AngularJS:如何在两个隔离的控制器和共享服务之间创建双向数据绑定?

来自分类Dev

AngularJS:在控制器之间共享数据的工厂

来自分类Dev

使用AngularJS工厂在控制器之间共享数据

来自分类Dev

AngularJS:在指令和外部控制器之间共享数据

来自分类Dev

控制器之间通过服务共享数据(AngularJS)

来自分类Dev

AngularJS在控制器之间共享异步服务数据

来自分类Dev

angularjs在控制器之间共享数据配置

来自分类Dev

使用服务在控制器之间共享数据(AngularJS)

来自分类Dev

angularjs-通过服务在控制器之间共享数据

来自分类Dev

AngularJS使用$ broadcast帮助在控制器之间共享数据

来自分类Dev

如何以正确的方式在Angle App中的控制器之间共享数据

来自分类Dev

如何在使用ASP .NET MVC的方法之间正确共享控制器中的对象?

来自分类Dev

AngularJS:如何使用服务检索数据并在控制器之间共享?

来自分类Dev

控制器之间的共享状态-angularjs

来自分类Dev

AngularJS在控制器之间共享方法

来自分类Dev

AngularJS在指令之间共享控制器

来自分类Dev

在控制器之间共享AngularJS工厂

来自分类Dev

在控制器AngularJS之间共享功能

来自分类Dev

控制器之间的共享状态-angularjs

来自分类Dev

如何在未通过Segue直接连接的视图控制器之间共享数据

来自分类Dev

如何在视图控制器之间共享模型对象?

来自分类Dev

如何在控制器之间共享功能?

Related 相关文章

  1. 1

    AngularJS在控制器之间共享数据

  2. 2

    在控制器AngularJS之间共享数据

  3. 3

    在控制器之间共享数据,AngularJS

  4. 4

    如何在angularjs中的两个控制器之间共享数据

  5. 5

    如何在AngularJS中的各个控制器之间共享数据?

  6. 6

    如何在angularjs中使用服务在控制器之间共享和更新数据

  7. 7

    如何在控制器之间共享数据?

  8. 8

    AngularJS:如何在两个隔离的控制器和共享服务之间创建双向数据绑定?

  9. 9

    AngularJS:在控制器之间共享数据的工厂

  10. 10

    使用AngularJS工厂在控制器之间共享数据

  11. 11

    AngularJS:在指令和外部控制器之间共享数据

  12. 12

    控制器之间通过服务共享数据(AngularJS)

  13. 13

    AngularJS在控制器之间共享异步服务数据

  14. 14

    angularjs在控制器之间共享数据配置

  15. 15

    使用服务在控制器之间共享数据(AngularJS)

  16. 16

    angularjs-通过服务在控制器之间共享数据

  17. 17

    AngularJS使用$ broadcast帮助在控制器之间共享数据

  18. 18

    如何以正确的方式在Angle App中的控制器之间共享数据

  19. 19

    如何在使用ASP .NET MVC的方法之间正确共享控制器中的对象?

  20. 20

    AngularJS:如何使用服务检索数据并在控制器之间共享?

  21. 21

    控制器之间的共享状态-angularjs

  22. 22

    AngularJS在控制器之间共享方法

  23. 23

    AngularJS在指令之间共享控制器

  24. 24

    在控制器之间共享AngularJS工厂

  25. 25

    在控制器AngularJS之间共享功能

  26. 26

    控制器之间的共享状态-angularjs

  27. 27

    如何在未通过Segue直接连接的视图控制器之间共享数据

  28. 28

    如何在视图控制器之间共享模型对象?

  29. 29

    如何在控制器之间共享功能?

热门标签

归档