Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs Angular UI Router |多视图:如何在多个视图中使用resolve对象?_Angularjs_Angular Ui Router - Fatal编程技术网

Angularjs Angular UI Router |多视图:如何在多个视图中使用resolve对象?

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){

这里有一种情况,在一个状态中,我有多个视图,每个视图都必须从服务器端获取数据,因此我想在每个视图中使用“resolve”,它会进行自己的REST调用,以从服务器获取数据

以下是我的尝试:

.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路由器中,已解析的依赖项不能作为同级视图的依赖项提供。我们需要在视图之间建立子-父关系,以便将一个已解析的依赖项注入到另一个视图中


我希望这也能帮助其他人:)

是的,我理解这一点。但是,我的问题是两个兄弟视图。是否可能在同一级别上有两个视图?如果没有,那我该怎么做呢?如果我理解你的例子是正确的,“权限”应该在所有兄弟姐妹中都可用。因此,如果希望数据在所有同级中都可用,则必须在父级状态的“解析”中解析它,在“解析”中解析“权限”