Angular UI Router child resolves

I am trying to create a parent-child relationship in my UI router config with using different resolves and it doesn't seem to be working. I want to have a common parent state with child states that control whether the state is in edit mode or new mode. Depending on the mode, the resolve of the state is different.

What I have is essentially this:

    .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);
            }]
        }
    })

Doing it this way, I get this:

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

Is there a way to have a parent state that just defines the URL and templateUrl and then have child states with varying resolves?

One option to help with this would be to pull out the repeating resolve on the routes and put it into a factory that the controller can call on