AngularJS - Dynamic $StateProvider

前端 未结 2 1708
醉梦人生
醉梦人生 2021-02-06 19:05

I am eagerly trying to create a dyanmic $StateProvider:

Standard static $StateProvider:

    $stateProvider
      .state(\'main\         


        
相关标签:
2条回答
  • 2021-02-06 19:39

    I think you're calling $stateProvider.state(...) incorrectly, it takes a state ID and then the configuration object.

    Assuming your name properties are valid and unique you should just be able to do this (or adjust it as needed):

    angular.forEach(states, function(state) {
        $stateProvider.state(state.name, state);
    });
    
    0 讨论(0)
  • 2021-02-06 19:52

    Solution:

    var states = [
    { name: 'main', url: '/', templateUrl: '/views/main.html', controller: 'MainCtrl' },
    { name: 'login', url: '', templateUrl: '/views/login-form.html', controller: 'LoginCtrl' },
    { name: 'logout', url: '', templateUrl: '', controller: 'LogoutCtrl' },
        {
            name: 'sales',
            url: '',
            templateUrl: '/views/sales-data.html',
            controller: 'SalesDataCtrl',
            resolve: {
                user: 'User',
                authenticationRequired:
                ['user', function(user) { user.isAuthenticated(); }] // <-------------------------
            }
        }
    ];
    
        angular.forEach(states, function (state) {
            $stateProvider.state(state.name, state);
        });
    
    0 讨论(0)
提交回复
热议问题