【问题标题】:Angular UI Router Dependent Component ResolveAngular UI 路由器依赖组件解析
【发布时间】:2017-03-02 15:38:47
【问题描述】:

在 UI Router 示例应用程序中有一个示例,其中一个解析对象用于下一个解析。 https://github.com/ui-router/sample-app-ng1/blob/master/app/mymessages/mymessages.states.js#L76

resolve: {
    // Fetch the current folder from the Folders service, using the folderId parameter
    folder: (Folders, $stateParams) => Folders.get($stateParams.folderId),

    // The resolved folder object (from the resolve above) is injected into this resolve
    // The list of message for the folder are fetched from the Messages service
    messages: (Messages, folder) => Messages.byFolder(folder)
  }

我在 ES5 javascript 中尝试了以下代码,但出现错误:

"Cannot read property 'propertyName' of undefined"

resolve: {
 viewModel: ['viewModelService', function (viewModelService) {
        return viewModelService.get().then(function (response) {
            return response.data;
        });
    }],
    anotherViewModel: this.viewModel.propertyName
}

【问题讨论】:

  • 什么是this.viewModel?它被评估为undefined
  • this.viewModel 是在anotherViewModel 上面解析的viewModel 对象
  • 然后看我的回答

标签: javascript angularjs angular-ui-router


【解决方案1】:

这应该可行:

resolve: {
    viewModel: ['viewModelService', function (viewModelService) {
            return viewModelService.get().then(function (response) {
                return response.data;
            });
        }
    ],
    anotherViewModel: ['viewModel', function (viewModel) {
            viewModel.propertyName
        }
    ]
}

【讨论】:

  • 太棒了。效果很好。
  • @WilJones,没问题。如果有帮助,您可以接受我的回答。
猜你喜欢
  • 1970-01-01
  • 2017-01-14
  • 1970-01-01
  • 2016-05-15
  • 1970-01-01
  • 1970-01-01
  • 2017-01-04
  • 1970-01-01
  • 2021-11-23
相关资源
最近更新 更多