我只提供一个解析提供程序作为示例,但它在大多数情况下都会发生。
简化的状态结构如下:
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
在其他解析对象中用作依赖,但从未覆盖。