在同一文件中声明它们时,路由状态无法正常工作

时间:2015-12-22 22:52:42

标签: angularjs angular-ui-router

我有一个项目,其中所有内容都是模块化的,在index.html上加载文件的顺序是:

app
|– client
|  |– modules
|  |  |– products
|  |  |  |– conditions
|  |  |  |  |- crud
|  |  |  |  |- conditions.module.js #6
|  |  |  |  └─ conditions.routes.js #7
|  |  |  |– brands
|  |  |  |  |- crud
|  |  |  |  |- brands.module.js #4
|  |  |  |  └─ brands.routes.js #5
|  |  |  |- crud
|  |  |  |- products.module.js #1
|  |  |  └─ products.routes.js #2
|  |  |- ...

问题是如果我在 products.routes.js 声明状态home.products.conditions一切正常,我的意思是在 brand.routes.js声明的所有子状态工作,但如果我在 conditions.routes.js 之前在所有孩子之前声明home.products.conditions,那么某些路线,特别是home.products.conditions.create不起作用!同样适用于home.products.brands

有什么想法吗?

这是我注册状态的方式:

(function () {

    'use strict';

    angular
        .module( 'app.products' )
        .constant( 'states', getRouteStates() )
        .config( [ '$stateProvider', '$urlRouterProvider', 'states', stateConfigurator ] );

    function stateConfigurator( $stateProvider, $urlRouterProvider, states ) {

        states.forEach( function ( state ) {

            $stateProvider.state( state.name, state.config );

        } );

        $urlRouterProvider.otherwise( '/' );

    }

    function getRouteStates() {
        return [
            {
                name: 'home.products.create',
                config: {
                    url: '/nuevo',
                    views: {
                        'dashboard-heading@': {
                            template: '<b>Completar el formulario</b>'
                        },
                        'dashboard-body@': {
                            templateUrl: './modules/purchases/products/create-product/create-product.form.html',
                            controller: 'CreateProductController',
                            controllerAs: 'vm'
                        }
                    }
                }
            },
            {
                name: 'home.products.list',
                config: {
                    url: '/listado',
                    views: {
                        'dashboard-heading@': {
                            template: '<b>Lista de Productos</b>'
                        },
                        'dashboard-body@': {
                            templateUrl: './modules/purchases/products/read-product/products-list.view.html',
                            controller: 'ReadProductController',
                            controllerAs: 'vm'
                        }
                    }
                }
            }
        ];
    }

})();

0 个答案:

没有答案