2015-03-13 47 views
0

我想在我的UI路由器配置中使用不同的解决方法创建一个父母 - 子女关系,它似乎并没有工作。我想拥有一个共同的父状态和子状态,控制状态是处于编辑模式还是新模式。根据模式,状态的决定是不同的。Angular UI Router儿童解决

我有什么本质上是这样的:

.state('main.details', { 
     url: "/details", 
     templateUrl: "modules/details.html", 
     abstract: true 
    }) 

    .state('main.details.new', { 
     controller: "DetailsCtrl as detailsCtrl", 
     resolve : { 
      detail: ['$stateParams', 'NewService', function ($stateParams, NewService) { 

       return NewService.getDetail($stateParams.detailId, true); 
      }] 
     } 
    }) 

    .state('main.details.edit', { 
     controller: "DetailsCtrl as detailsCtrl", 
     resolve : { 
      detail: ['$stateParams', 'EditService', function ($stateParams, EditService) { 

       return EditService.getDetail($stateParams.detailId, true); 
      }] 
     } 
    }) 

这样做,这样,我得到这个:

Error: [$injector:unpr] Unknown provider: detailProvider <- detail <- DetailsCtrl 

有没有办法有,只是定义URL和templateUrl父状态然后有不同决心的孩子状态?

+0

这错误表明DetailsCtrl不存在。你确定你的应用程序正确地注册了该控制器吗? – 2015-03-13 15:19:43

+0

你的NewService或EditService返回什么?承诺或某个结果值? – 2015-03-13 15:35:32

+0

两人都答应了,是的。 – sma 2015-03-13 15:55:02

回答

0

一个选项,以帮助这将是拉出重复解决的途径,并把它变成一个工厂,该控制器可以拨打