Angular State Provider抛出无法解决状态错误

时间:2016-11-02 00:55:53

标签: javascript angularjs angular-ui-router

我是Angular的新手,我正在研究他们使用状态引擎的现有应用程序。我添加了一个新状态

  

' app.maintenance.population.trial'

在现有模块中,如下所示:

var maintenancePopulationModule = angular.module('maintenance.population.module', ['fileUpload.module'])
.config([
    '$stateProvider', function ($stateProvider) {
        $stateProvider
            .state('app.maintenance.population',
            {
                url: '/population',
                templateUrl: '/app/maintenance/population/maintenance.population.view.html',
                controller: 'MaintenancePopulationController',
                authorize: true
            })
         .state('app.maintenance.population.trial',
                {
                    url: '/trial2',
                    templateUrl: '/app/maintenance/population/maintenance.population.view.html',
                    //controller: 'MaintenanceCodisController',
                    //authorize: true
                });

    }
]);
  • 我们可以看到,两个州之间几乎没有任何区别。它使用相同的模板并添加了额外的关键字' .trial'最后它停止了工作。现在我做了一个不同的实验,这次我用另一个模块进行了类似的实验:
angular.module('maintenance.codis.module', [])
        .config([
            '$stateProvider', function($stateProvider) {
                $stateProvider
                    .state('app.maintenance.codis',
                    {
                        url: '/codis',
                        templateUrl: '/app/maintenance/codis/maintenance.codis.view.html',
                        controller: 'MaintenanceCodisController',
                        authorize: true
                    })
                .state('app.maintenance.codis.trial',
                    {
                        url: '/trial',
                        templateUrl: '/app/maintenance/codis/maintenance.codis.view.html',
                        //controller: 'MaintenanceCodisController',
                        //authorize: true
                    });

            }
        ]);
  • 这个有效。正如你所看到的那样,除了.trial关键字之外,这两个状态之间没有太大区别。不确定为什么Codis工作但人口不起作用。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

建议您查看Nested States

清楚地看到 app.maintenance.codis 是您的状态, app.maintenance.codis.trial 是您的孩子状态。

您的试用路线将是这样的

...../codis/trial

这意味着您的试用状态是 codis 的孩子。 另外,要检查群体试验2是否有效,请尝试访问此路线

......./population/trial2

这必须按预期工作。

<强>最后, 让你的codis工作。确保 Codis html模板中必须有 ui-view ,同时您的两个州都引用相同的templateUrl,并相应地进行修改。

这个答案有用吗!评论是否需要进一步解释。