Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.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路由器:将$promise方法放在何处或如何异步加载?_Angularjs_Angular Ui Router_Ng Grid - Fatal编程技术网

Angularjs Angular ui路由器:将$promise方法放在何处或如何异步加载?

Angularjs Angular ui路由器:将$promise方法放在何处或如何异步加载?,angularjs,angular-ui-router,ng-grid,Angularjs,Angular Ui Router,Ng Grid,这是我的ui路由器的状态提供程序: ... resolve: { myModelData: ['$http', function($http) { return $http.get('api:port/path').then(function(response) { return response.data; }) }] }

这是我的ui路由器的状态提供程序:

 ...
 resolve: {
            myModelData: ['$http', function($http) {
                 return $http.get('api:port/path').then(function(response) {
                    return response.data;
                })
            }]
        },
 ...
我的控制器依赖于myModelData,它将双向样式绑定到ng网格:

app.controller('myCtrl', ['$scope', 'myModelData'...) {
$scope.myModelData = myModelData;
$scope.gridOptions = {
            data: $scope.myModelData,
            enableSorting: true,
            enableFiltering: true,
            ...
        };

因为代码代表了我的整个页脚、页眉、导航,所以在ui路由器上等待加载资源。如何从源异步加载,既不阻塞要加载的DOM的其余部分,又不破坏ng网格依赖性。

您的状态和视图是如何构造的?我建议创建3个视图。然后创建一个填充页眉和页脚视图的父状态。使子状态填充到未命名视图中,并将您的解决方案放在子状态上。当然,您需要确保用户在子状态之前导航到父状态,否则您将再次阻塞(我正在考虑通过书签加载子状态)。Resolve设计用于阻止转换,直到解决为止。另一种方法是不使用解析,只需在控制器中异步加载数据。根据网格类型手动隐藏/显示网格。