angular-ui-router 将数据解析为状态

示例

您可以resolve在转换到状态时将数据转换为状态,通常在状态需要使用该数据或在某些提供的输入需要进行身份验证时解析为状态时非常有用。

定义状态时,您需要提供要解析到.resolve属性中的值的映射,每个解析后的值都应具有一个返回值的函数。promise

.state('main', {
     url: "/main",
     templateUrl: "path/to/main.html",
     controller: 'mainCtrl',
     resolve: {
         serverData: function ($http) {
             return $http.get('some/url');
         }
     }
});

现在,mainCtrl您可以在内部访问数据(即,如果$http呼叫成功解决)。

.controller("mainCtrl", function($scope, serverData) {
    $scope.resolvedData = serverData.then(resp=> resp.data);
    ....
})