一个控制器到另一个范围并在Angular中共享

时间:2014-10-14 12:12:48

标签: angularjs

Angular开始时很容易理解,但今天我完全迷失了,并且感谢我为这个问题提供的任何帮助。

所以我有一个双列页面,一边是过滤器,另一边是要过滤的事物列表。此页面是使用注入DOM的html位创建的。我有一个过滤器模板和一个列表模板,他们都有自己的控制器(filterCtrl和filterCtrl)。

我知道我需要将控制器的http请求分隔到工厂,所以目前我的应用程序中的示例工厂和控制器看起来像这样。

fpApp.controller('listController', ['$scope', 'eventsFactory',
    function($scope, eventsFactory) {
        eventsFactory.eventList().then(
            function(data){
                $scope.events = data;
            }
        );
    }
]);

fpApp.factory('eventsFactory', function ( $http ) {
    return {
        eventList: function() {
            return $http.get('/js/db/events.json')
            .then(
                function(result) {
                    return result.data;
            });
        }
    };
});

目前,每件事都很隆重,我有一个由偏见构建的界面,一切都在输出我需要的东西。我的问题是我需要将这些过滤器应用到列表中,但不知道如何将信息从一个控制器输出到另一个控制器或甚至一个模板到另一个控制器..一旦我能够获取数据从一个到另一个不好。

fpApp.config(function($stateProvider, $urlRouterProvider) {
    //
    // For any unmatched url, redirect to /state1
    $urlRouterProvider.otherwise("/grid");
    //
    // Now set up the states
    $stateProvider
        .state('grid', {
            url: '/grid',
            views: {
                // the main template will be placed here (relatively named)
                '': { templateUrl: '/templates/grid.html' },
                'filerList@grid': { 
                    templateUrl: '/templates/partials/filterList.html', 
                    controller: 'filterCtrl'
                },
                'viewSwitch@grid': { 
                    templateUrl: '/templates/partials/viewSwitch.html'
                },
                'eventList@grid': { 
                    templateUrl: '/templates/partials/eventList.html',
                    controller: 'listController'
                }
            }
        })
        .state('list', {
            url: '/list',
            views: {
                // the main template will be placed here (relatively named)
                '': { templateUrl: '/templates/list.html' },
                'filerList@list': { 
                    templateUrl: '/templates/partials/filterList.html',
                    controller: 'filterCtrl'
                },
                'viewSwitch@list': { 
                    templateUrl: '/templates/partials/viewSwitch.html'
                },
                'eventList@list': { 
                    templateUrl: '/templates/partials/eventList.html',
                    controller: 'listController'
                }
            }

        });
});

总结一下,当用户点击filterController中的过滤器时,如何影响列表控制器?

感谢您提前抽出时间。

0 个答案:

没有答案