2015-03-13 92 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

一個選項,以幫助這將是拉出重複解決的途徑,並把它變成一個工廠,該控制器可以撥打