I'm trying to create a dashboard which have filters on the left and charts 
on the centre.

Filters on the left are the simple separate multiselect boxes which have 
some categories, vendors and some other data. Charts on the centre can be 
filtered by selecting one of the item in the left or selecting particular 
item on the chart which also make select box on the left to highlight the 
item clicked on charts.

Before I completely reproduce this in a plunker I have a lite abstract of 
actual point where I'm stuck at my app.

Ultimately is there any angular design pattern for a app that will be have 
a 10 multiselect boxes, 10 charts, such that any click with start filtering 
other charts or filters/multiselect boxes. Now if we put event listener for 
say tableA, it will change tableA's data, that will make tableB's data to 
change, which then C, then come to A again, How to do this with angular 
when I'm confused to implement it on plain javascript.

Here's incomplete but enough code to judge if its design is correct.

http://plnkr.co/edit/Z4jnjnBqoEk5YhUQSVRD?p=info whose app.js is

// Code goes here
(function () {
    'use strict';

    angular
        .module('app', ['ngRoute'])
        .config(config)
        .run(run);

    config.$inject = ['$routeProvider', '$locationProvider'];

    function config($routeProvider, $locationProvider) {
        $routeProvider
            .when('/dashboard', {
                controller: 'DashboardController',
                templateUrl: 'dashboard.html',
                controllerAs: 'cm'
            })
            .otherwise({
                redirectTo: '/dashboard'
            });
    }

    run.$inject = ['$rootScope', '$location', '$window', '$http'];

    function run($rootScope, $location, $window, $http) {

        $rootScope.$on('$locationChangeStart', function (event, next, current) {


            var restrictedPage = $.inArray($location.path(), ['/dashboard']) 
=== -1;



            if (!restrictedPage) {
                $location.path($location.path());
                return;
            } else $location.path('/dashboard');


        });
    }
})();


-- 
You received this message because you are subscribed to the Google Groups 
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.

Reply via email to