2016-11-02 40 views
0

我对Angular非常陌生,我只是在使用状态引擎的现有应用程序上工作。我现有的模块,它看起来像在之后添加一个新的状态Angular State Provider抛出无法解析状态错误

'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关键字之外,其他国家之间没有太大的区别。不知道为什么科迪斯工作,但人口没有工作。有任何想法吗?
+0

更新您的控制台错误! – Aravind

回答

1

建议你去看看关于Nested States

清楚地看到,app.maintenance.codis是你的父母状态app.maintenance.codis.trial是你的孩子州。

你的审判路线会是这样

...../codis/trial 

这意味着你的审判状态是CODIS一个孩子。 另外要检查,如果人口trial2是工作还是不要尝试访问该路线

......./population/trial2 

这必须按预期工作。

FINALLY, 为了让你的编码工作。确保html模板中必须存在ui-view,并且您的两个状态都指向相同的templateUrl,并相应地对其进行修改。

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