为什么我在这次转型中缺少供应商?

时间:2014-07-14 12:02:53

标签: angularjs angular-ui-router

我只提供一个解析提供程序作为示例,但它在大多数情况下都会发生。

简化的状态结构如下:

  • accounts resolve:accountsFolders
  • accounts.content
  • accounts.content.viewcontacts
  • accounts.content.viewaccounts
  • accounts.content.viewcontacts.details解决方案取决于accountsFolders
  • accounts.content.viewaccounts.details解决方案取决于accountsFolders

我可以直接访问accounts.content.viewaccounts.details,它可以正常使用;

我可以从任何父母那里访问accounts.content.viewaccounts.details并且它有效;

但如果我从access accounts.content.viewaccounts.details尝试accounts.content.viewcontacts,我会unknown provider accountsFoldersProvider

我正在使用$ state.go进行转换。

如果我添加

,将会起作用
accountsFolders: function(accountsFolders) {
    return accountsFolders;
}

对所有其他解决方案

你可以很容易地理解为什么它是不受欢迎的,特别是考虑到大约有10个其他对象必须像accountsFolders一样,状态树非常大。

进一步的细节:(写在这里以避免拥挤评论)

accounts resolve contains

accountsFolders: function(accountsFoldersPromise, folderService) { 
    return new folderService.StandardFolderList(accountsFoldersPromise.data)
}

account.content.viewcontacts.details resolve contains

currentFolder: function(accountsFolders, $stateParams) { 
    return accountsFolders.findById($stateParams.folderId);
}

accountsFolders在其他解析对象中用作依赖,但从未覆盖。

0 个答案:

没有答案