Angularjs Angular ui路由器:将$promise方法放在何处或如何异步加载?
这是我的ui路由器的状态提供程序: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; }) }] }
...
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设计用于阻止转换,直到解决为止。另一种方法是不使用解析,只需在控制器中异步加载数据。根据网格类型手动隐藏/显示网格。