Angularjs Angular UI Router |多视图:如何在多个视图中使用resolve对象?
这里有一种情况,在一个状态中,我有多个视图,每个视图都必须从服务器端获取数据,因此我想在每个视图中使用“resolve”,它会进行自己的REST调用,以从服务器获取数据 以下是我的尝试:Angularjs Angular UI Router |多视图:如何在多个视图中使用resolve对象?,angularjs,angular-ui-router,Angularjs,Angular Ui Router,这里有一种情况,在一个状态中,我有多个视图,每个视图都必须从服务器端获取数据,因此我想在每个视图中使用“resolve”,它会进行自己的REST调用,以从服务器获取数据 以下是我的尝试: .state('dashboard.xyz.deal.details', { url: "/details/:dealId", resolve: { permissions : function(dealDetails, $stateParams){
.state('dashboard.xyz.deal.details', {
url: "/details/:dealId",
resolve: {
permissions : function(dealDetails, $stateParams){
return dealDetails.getUnitPermissions($stateParams.dealId);
}
},
views: {
"viewDealDetails": {
templateProvider: function(permissions, $http){
return $http.get('/modules/deal-details-module/partial/views/view-deal-details/view-deal-details.html')
.then(function(tpl){
return tpl.data;
});
},
controller: 'ViewDealDetailsCtrl',
resolve: {
resolveDealDetails : function(dealDetails, $stateParams){
console.log('Inside the resolve of viewDealDetails');
return dealDetails.getDealDetails($stateParams.dealId);
}
}
},
"viewFinePrints": {
templateProvider: function(permissions, $http){
return $http.get('/modules/deal-details-module/partial/views/view-fine-prints/view-fine-prints.html')
.then(function(tpl){
return tpl.data;
});
},
resolve: {
resolveFinePrints: function(dealDetails){
//How can I inject the 'resolveDealDetails' as dependency in 'resolveFinePrints' ?
console.log('Inside the resolve of resolveFinePrints ::::::');
return dealDetails.getFinePrints('travel').then(function(data){
return data;
});
}
},
controller: 'ViewFinePrintsCtrl'
}
}
})
因此,我想问以下问题:
问题1。在多个视图中使用“resolve”是否正确?正如我从官方文件中读到的
resolve关键字必须是相对于状态而不是视图的(如果
使用多个视图)
问题2。如果在视图中解析依赖项是可以的,那么如何在另一个视图中插入一个解析的依赖项
例如,在我的代码中,我希望使用'resolveDealDetails'作为'resolveFinePrints'的依赖项
问题2。如果在视图中解析依赖项是可以的,那么我如何>在另一个视图中插入一个解析的依赖项
子视图/嵌套视图继承自父视图,因此您在父视图中解析的数据在子视图中可用
若要在控制器之间共享数据(若视图未嵌套),则应使用服务。然后将其注入控制器,因此所需的数据将在您需要的地方可用 那么,下面是对发布的两个问题的回答: 问题1。在多个视图中使用“resolve”是否正确?正如我 从官方文件中读到: resolve关键字必须是相对于状态而不是视图的(如果 使用多个视图) 事实证明,嵌套视图中的“解析”的工作方式与相对于状态的工作方式相同。因此,嵌套视图的模板仅在解决依赖关系后才呈现 问题2。如果解决视图中的依赖关系是可以的,那么如何解决 是否在另一个视图中插入一个已解析的依赖项 在ui路由器中,已解析的依赖项不能作为同级视图的依赖项提供。我们需要在视图之间建立子-父关系,以便将一个已解析的依赖项注入到另一个视图中
我希望这也能帮助其他人:)是的,我理解这一点。但是,我的问题是两个兄弟视图。是否可能在同一级别上有两个视图?如果没有,那我该怎么做呢?如果我理解你的例子是正确的,“权限”应该在所有兄弟姐妹中都可用。因此,如果希望数据在所有同级中都可用,则必须在父级状态的“解析”中解析它,在“解析”中解析“权限”