【问题标题】:Angular UI Router child resolvesAngular UI Router子解决
【发布时间】:2015-03-13 14:50:12
【问题描述】:

我正在尝试使用不同的解析在我的 UI 路由器配置中创建父子关系,但它似乎不起作用。我希望拥有一个带有子状态的共同父状态,以控制状态是处于编辑模式还是新模式。根据模式,状态的解析是不同的。

我所拥有的基本上是这样的:

    .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,然后让子状态具有不同的解析?

【问题讨论】:

  • 该错误表明 DetailsCtrl 不存在。您确定您在您的应用中正确注册了该控制器吗?
  • 您的 NewService 或 EditService 返回什么?一个承诺还是一些结果值?
  • 两者都返回一个承诺,是的。

标签: angularjs angular-ui-router


【解决方案1】:

解决此问题的一个选项是提取路线上的重复解析并将其放入控制器可以调用的工厂

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-29
    • 1970-01-01
    • 2023-03-11
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多